LINUX.ORG.RU

binwalk на стероидах?

 ,


0

2

Есть один большой жирный файл, его надо отреверсить на отдельные файлы (по крайней мере оно не похоже на архив).

Существует ли что-нибудь типа binwalk, но умеющее определять известные форматы (e.g. PNG) без заголовков?

★★★★★

Последнее исправление: mord0d (всего исправлений: 2)

известные форматы (e.g. PNG) без заголовков?

Так тебе надо-то что, file/libmagic для определения известных форматов типа PNG по заголовку или гадалку по бинарной гуще?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Есть же у некоторых форматов и другие отличительные особенности помимо заголовка - вот, например, PNG завершается концовкой IEND + имеет свою специфику кодирования битов и вставки того же CRC между их блоками.

Здесь ТСу, походу, нужна нейросетка определяющая вероятность того или иного формата. Существование оных сомнительно, но сейчас попробую поискать, тоже интересно.

x86-
()

Описанную вами задачу принято называть AFTI (Automated file type identification), по ней все еще клепают алгосики ученые, но нормального софта вроде не подвезли.

Вот одна из недавних публикаций подобного рода, а вот их Jupyter нотсы: https://github.com/nationalarchives/Text-File-Format-Identification.

x86-
()
Последнее исправление: x86- (всего исправлений: 1)
Ответ на: комментарий от t184256

Не-не-не, есть один большой жирный файл, его надо отреверсить на отдельные файлы (по крайней мере оно не похоже на архив).

mord0d ★★★★★
() автор топика
Ответ на: комментарий от x86-

Почему вы вообще уверены, что этот бинарник - смесь различных файлов?

Потому что оно так применяется.

И каково его происхождение?

Не знаю, меня соседский кот попросил поискать/спросить.

UPD: Вот файл.

mord0d ★★★★★
() автор топика
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от anonymous

Наверное. Я открыл файл в hexdump(1), пролистал, ничего знакомого не увидел, решил попинать ЛОР.

mord0d ★★★★★
() автор топика
Ответ на: комментарий от mord0d

Не похоже на прошивку. Как оно применяется? Внутри много объектов, возможно сжатых, не код.

anonymous
()
Ответ на: комментарий от anonymous

это скин для часов

Внутри много объектов, возможно сжатых, не код.

Логично.

mord0d ★★★★★
() автор топика
Ответ на: комментарий от mord0d

Чел, в прошлой версии твоей шапки смысл найти нельзя, а ты в бинарнике ассеты ищешь.

Теперь у тебя то л реверсинг формата, то ли photorec получается.

t184256 ★★★★★
()

…умеющее определять известные форматы (e.g. PNG) без заголовков?

В такой формулировке задача не решается. Есть сигнатурный и шаблонный поиск (см. YARA). Но основной инструмент реверсера ­— по–прежнему собственный мозг и знания. Волшебного софта с кнопкой «сделать зашибись» всё ещё не изобрели.

UPD: Вот файл.

По энтропии видно, что файл несжатый (сравниваем размер с этим же файлом, затоптанным в .zip).

Наивное предположение — скорее всего сырые битмапы, в том формате, который принимает матрица дисплея (подсказка: поискать даташит).

Проверяем гипотезу.

Структуру файла оставляю для самостоятельного разбора. :)

На скрине — hobbits, но это далеко не единственный и не самый лучший из бинарных визуализаторов.

Quote
()
Ответ на: комментарий от Quote

Волшебного софта с кнопкой «сделать зашибись» всё ещё не изобрели.

Ищется не волшебный софт, а чтобы скормил файл, и оно показало что там может быть (в идеале — с процентной вероятностью).

mord0d ★★★★★
() автор топика
Ответ на: комментарий от mord0d

И как это должно быть реализовано, без заголовков–то? Как должен выглядеть алгоритм, который бы угадывал, что «вот те 100500 байт в середине файла — это на самом деле сырой битмап, пожатый алгоритмом XXX и потом зашифрованный YYY с ключом ZZZ»?

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

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

Quote
()
Ответ на: комментарий от Quote

сырой битмап, пожатый алгоритмом XXX и потом зашифрованный YYY с ключом ZZZ»?

Что за дебильная привычка додумывать?!

Ещё раз: есть какие-то данные, и если их можно оперделить, то оперделить и показать процентную вероятность возможного формата данных для дальнейшего диггинга. Всё!

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

Ладно просто побайтно просматривать, но "примерять" 100500 форматов — это слишком.

// Вот поэтому я этой дичью не занимаюсь. (%

mord0d ★★★★★
() автор топика
Ответ на: комментарий от Quote

Крутой софт, интересная аналитика, спасибо за линк. На скриншоте сразу видно три копии циферблата этих часов, возможно из-за битности битмапа.

ТС, что за часы-то?

EXL ★★★★★
()
Ответ на: комментарий от EXL

ТС, что за часы-то?

Без понятия, у меня нет часов. (%

Мопед не мой, я просто разместил объяву. (%

mord0d ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.