0

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

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

我有一种直觉,它与 -b 选项有关,该选项表示要模糊测试的字节。但是说我尝试zzuf -b 8-将 png 文件保存到保存器标题,它仍然无法正常工作。我没有正确使用这个吗?

更新

我多次尝试为 mp3、wav、png、jpg 和 mp4 执行此操作,但一次都没有可打开的文件。所以模糊器真的“破坏”了文件?

4

1 回答 1

0

您可以使用hach​​oir 之类的工具找到 PNG 标头和数据区域的位置,但这不会拯救您,因为问题不在这里。

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

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

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

例如,朴素的RLE 算法产生一个 {byte content, occurrence count} 字节序列。更改“出现计数”字节中的一位,突然解压缩数据的字节数与预期数不同width * height * depth,因此应合理地认为图像已损坏。

为了一个积极的结局,如果程序拒绝在没有崩溃、耗尽 CPU/内存资源或格式化您的硬盘驱动器的情况下打开模糊的 PNG,那么程序就会正常运行,这是一件好事(但请记住,没有发现任何错误不会)不是说没有,只是说明你没有找到)。

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

于 2016-08-21T14:26:13.843 回答