binary чем - Инструменты, помогающие преобразовывать двоичные форматы файлов




4 Answers

Вот несколько советов, которые приходят на ум:

По моему опыту, интерактивные языки сценариев (я использую Python) могут быть большой помощью. Вы можете написать простую структуру для работы с бинарными потоками и некоторыми простыми алгоритмами. Затем вы можете писать сценарии, которые будут принимать ваш двоичный файл и проверять разные вещи. Например:

Проведите некоторый статистический анализ по различным частям. Случайные данные, например, скажут вам, что эта часть, вероятно, сжата / зашифрована. Нули могут означать прокладку между частями. Рассеянные нули могут означать целые значения или строки Unicode и т. Д. Попробуйте определить различные смещения. Попробуйте преобразовать части двоичного кода в 2 или 4 байта целых чисел или в поплавки, распечатать их и посмотреть, не делают ли они. Напишите некоторые функции, которые будут искать повторяющиеся или очень похожие части в данных, таким образом вы можете легко определить заголовки.

Попробуйте найти как можно больше строк, попробуйте разные кодировки (строки c, строки pascal, utf8 / 16 и т. Д.). Для этого есть хорошие инструменты (я думаю, что в Hex Workshop есть такой инструмент). Строки могут рассказать вам много.

Удачи!

открыть типы

Какие инструменты доступны для облегчения декодирования неизвестных форматов двоичных данных?

Я знаю, что Hex Workshop и редактор 010 поддерживают структуры поддержки. В известном фиксированном формате они в достаточной степени подходят, но сложны в использовании с чем-то более сложным, особенно для неизвестных форматов. Наверное, я смотрю на модуль для языка сценариев или скриптовый инструмент графического интерфейса.

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

В моих мечтах, возможно, даже автоматически определить возможные смещения и длины, исходя из того, что я уже сказал системе!




Тупни ; насколько мне известно, непосредственно из Microsoft Research, но есть статья об этом инструменте, которая может представлять интерес для кого-то, кто хочет написать подобную программу (возможно, с открытым исходным кодом):

Tupni: автоматическая обратная инженерия входных форматов ( цифровая библиотека @ ACM )

Абстрактные

Недавняя работа установила важность автоматической обратной разработки спецификаций протокола или формата файла. Тем не менее, обратные форматы, созданные с помощью предыдущих инструментов, пропустили важную информацию, критическую для приложений безопасности. В этой статье мы представляем Tupni, инструмент, который может перепроектировать формат ввода с богатым набором информации, включая последовательности записей, типы записей и ограничения ввода. Tupni может обобщать спецификацию формата на несколько входных данных. Мы реализовали прототип Tupni и оценили его в 10 различных форматах: пять форматов файлов (WMF, BMP, JPG, PNG и TIF) и пять сетевых протоколов (DNS, RPC, TFTP, HTTP и FTP). Тупни определил все последовательности записей в тестовых вводах. Мы также показываем, что, объединив несколько файлов WMF, Tupni может получить более полную спецификацию формата для WMF. Кроме того, мы демонстрируем полезность Tupni, используя богатую информацию, которую он предоставляет для генерации подписи уязвимости zeroday, что было невозможно с предыдущими инструментами обратной инженерии.




Я все же иногда использую старый редактор шестнадцатеричного редактора AX, Advanced Hex Editor. Похоже, что он в значительной степени исчез из Интернета, хотя Google все равно сможет найти его для вас. Последняя версия, о которой я знаю, была версия 3.4, но я действительно использовал только бесплатную версию 2.1 для личного использования.

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

Я полагаю, что делать это на глазу - это совершенно противоположно автоматическому анализу, и графический режим не будет очень полезен для поиска и последующего смещения ...

В более поздней версии есть некоторые функции, которые звучат так, как будто они могут соответствовать вашим потребностям (скрипты, искатель регулярности, генератор грамматики), но я не знаю, насколько они хороши.




Мой проект icebuddha.com поддерживает это с помощью python для описания формата в браузере.




Related

binary reverse-engineering file-format binary-data