如何模糊和保存文件

时间:2016-08-21 13:59:30

标签: fuzzer

我想要一个模糊的模糊器,但不会破坏文件本身。我的意思是,我想随机模糊文件,但我希望能够打开它并在之后测试它(我不想要损坏的文件)。

以zzuf为例,当我使用它来模糊mp3或png文件时,模糊文件无法再打开。所以我想知道我如何模糊内容而不是破坏文件。

我有一种直觉,认为它与-b选项有关,它说明哪些字节要模糊。但是我说我尝试zzuf -b 8- png文件到preserver标头,它仍然不起作用。我没有正确使用这个吗?

更新

我试过很多次为mp3,wav,png,jpg和mp4做这个,而且没有一次有可打开的文件。因此,模糊器确实“打破”了文件?

1 个答案:

答案 0 :(得分:0)

您可以使用hachoir之类的工具找到PNG标题和数据区域的位置,但这不会为您节省,因为问题不在此处。

问题不仅在于标题,因为您处理压缩格式(PNG),“数据”区域不是一个哑位图,其中可以更改位并使文件有效,格式化。

压缩数据包含解析器算法为了重建解压缩数据而应处理的某种“指令”。在某种程度上,压缩数据格式是一种特定于域的二进制语言,解析器解析和解释。

使用这种语言的有效程序(具有有效压缩数据区域的有效PNG文件)和随机翻转位可以根据这种特定语言产生另一个有效程序(另一个有效的PNG)。

例如,naive RLE algorithm生成{byte content,occurrence计数}字节的序列。更改“发生计数”字节中的一位,突然解压缩的数据具有与预期数量ocpu.r_fun_call不同的字节数,因此应合理地将图像视为已损坏。

为了一个积极的结局,如果程序拒绝打开模糊的PNG而不会崩溃,耗尽CPU /内存资源或格式化硬盘驱动器,那么程序只是表现正常,这是一件好事(但请记住,没有找到任何东西) bug并不意味着没有,它只意味着你没有找到它们。)

如果你真的想要模糊图像数据,那么你需要的是一个可以处理解压缩数据的模糊器。我不知道它是否存在但是它需要完全了解你想要使用的格式(PNG,MP3等),它不能是通用的二进制模糊器。