Генератор повреждённых файлов

Испортить файл для проверки загрузчика: одна порча на файл, с описанием последствий.

Перетащите файл сюда или нажмите, чтобы выбрать — формат любой Файл никуда не отправляется: порча накладывается прямо в браузере.

Или взять готовый образец

Целый файл нужного формата, если своего под рукой нет.

Инструмент берёт целый файл и ломает в нём ровно одно место. Получается файл, который на вид остался прежним: то же расширение, тот же размер, то же начало. Нужен он для проверки чужого кода — загрузчика, импорта, просмотрщика: что программа скажет человеку, когда файл окажется битым. Свой файл можно перетащить в окно, а если под рукой нет, взять готовый образец: PNG, JPEG, PDF, ZIP, DOCX, XLSX, WAV или TXT.

Случайные байты проверяют не то

Насыпать мусора в файл легко, но такой файл отвергается на первом же байте, и до кода разбора дело не доходит. Интересен другой случай: файл проходит проверку расширения, проходит проверку сигнатуры, начинает читаться и рассыпается в середине. Именно там программы падают с трассировкой стека вместо сообщения.

Порча знает устройство формата

Каждый вид порчи кладётся туда, где формат уязвим:

  • архив: контрольная сумма записи, каталог в конце, запись конца архива;
  • PNG: заголовок с его суммой, сжатые данные картинки;
  • JPEG: маркер начала данных, маркер конца;
  • PDF: указатель на таблицу ссылок и смещения в ней;
  • WAV: длина в заголовке;
  • текст: обрыв посередине многобайтного знака.

В пакетах Word и Excel ломается ещё и содержимое: отдельно часть с текстом документа, отдельно оболочка. Программа откроет такой файл и споткнётся уже внутри, а это другая ветка кода.

В файле сломано одно место

Порча по одной на файл, и это условие проверки, а не бережность. Испортишь три места разом — по отказу не понять, какое из них программа заметила, а какие пропустила бы поодиночке.

Написано, чего ждать

У каждой порчи подписано, что именно изменено в байтах и как должна повести себя правильно написанная программа. Отказ отказу рознь: у одних порч единственный верный ответ — сообщение об ошибке, у других допустимо частичное чтение.

Читалки различаются сильно, и это стоит знать заранее. Строгий разборщик отвергает все восемь порч PNG, а браузер показывает часть из них как ни в чём не бывало. У JPEG нет контрольных сумм вовсе: повреждённые данные кадра открываются, просто нижняя часть снимка выходит серой или полосатой. Ждать одинакового поведения от разных программ не нужно.

Набор одним архивом

Кнопка собирает все порчи разом в ZIP: целый файл для сравнения, испорченные копии и описание, где по каждой написано, что сломано и чего ждать. Через неделю по одним именам файлов этого уже не восстановить.

Файл никуда не отправляется: порча накладывается в браузере.

Другие инструменты