Вы можете найти, где заголовки PNG и области данных имеют такой инструмент, как hachoir, но это не спасет вас, потому что проблемы здесь нет.
Проблема заключается не только в заголовках, так как вы имеете дело со сжатым форматом (PNG), то область данных не является немым растровым изображением, где биты могут быть изменены и пусть файл будет действительным, форматным.
Сжатые данные содержат какие-то «инструкции», которые алгоритм декомпрессора должен обрабатывать для восстановления распакованных данных. В некотором смысле сжатый формат данных является своего рода двоичным языком, специфичным для домена, который декомпрессор анализирует и интерпретирует.
Принимая действительную программу на этом языке (действительный файл PNG с действующей областью сжатых данных) и случайные биты с чередованием, можно получить другую действующую программу (другой действующий PNG) в соответствии с этим конкретным языком или нет.
Например, наивный RLE algorithm создает последовательность {байтов, количество входов} байтов. Измените один бит в байте «количество экземпляров», и внезапно распакованные данные имеют другое количество байтов, чем ожидаемое число width * height * depth
, поэтому изображение следует разумно считать поврежденным.
Для положительного окончания, если программа отказывается открывать fuzzed PNG без сбоев, изнуряя ресурсы CPU/памяти или форматируя ваш жесткий диск, программа просто ведет себя правильно, что хорошо (но помните, любая ошибка не означает, что нет, это означает, что вы их не нашли).
Если вы действительно хотите заглушить данные изображения и ничего больше, вам нужен фюзер, который работает с распакованными данными. Я не знаю, существует ли он, но тогда он должен полностью знать о форматах, которые вы хотите использовать (PNG, MP3 и т. Д.), Он не может быть универсальным двоичным fuzzer.
Непонятно, что вы на самом деле пытаетесь выполнить. Что вы подразумеваете под словом «fuzz the contents»? Какова конечная цель возиться с изображениями или аудиоданными (но не с заголовками)? –
Я хочу «увидеть» fuzzed изображение или музыкальный файл. Если это испортит заголовки, разве это не означает, что wlll поврежден, и я больше не могу его открывать? По крайней мере, это то, что происходит со мной сейчас. –