Как установить ghidra на windows

Обновлено: 04.07.2024

Гидра (Ghidra) - дизассемблер

В начале марта 2019 года агентство национальной безопасности (АНБ) США выложили в открытый доступ Гидру (Ghidra) - инструмент для обратного инжиниринга (software reverse engineering SRE).

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

Гидра написана на языке Java, имеет графический интерфейс и интерактивный дизассемблер. Работает на Windows, Linux и Mac.

Гидра Ghidra

Исходный код гидры доступен на GitHub

Инструкция по установке

Поддерживаемые Платформы

  • Microsoft Windows 7 или 10 (64-разрядная версия)
  • Linux (64-разрядная версия, предпочтительнее CentOS 7)
  • macOS (ОС Х) 10.8.3+

Примечание: все 32-разрядные ОС не поддерживаются.

Минимальные требования

  • 4 ГБ ОЗУ
  • 1 ГБ памяти
  • Настоятельно рекомендуется использовать два монитора

Установка Ghidra

Чтобы установить Ghidra, просто извлеките файл дистрибутива в нужное место файловой системы, используя любую программу распаковки (встроенные утилиты ОС, 7-Zip, WinZip, WinRAR и т. д)

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

  • Ghidra не использует традиционную программу установки. Вместо этого файл дистрибутива Ghidra просто извлекается на месте в файловой системе. Такой подход имеет свои преимущества и недостатки. Для установки Ghidra для личного использования не требуются административные привилегии. Кроме того, поскольку установка Ghidra не обновляет конфигурации ОС, такие как реестр Windows, удаление Ghidra так же просто, как удаление каталога установки Ghidra. Ghidra не будет автоматически создавать ярлык на рабочем столе или отображаться в меню запуска приложения.
  • Для извлечения Ghidra в определенные файловые системы (например, C:\), а также для установки сервера Ghidra в качестве службы могут потребоваться права администратора.
  • Ghidra использует каталоги вне своего установочного каталога для управления как временными, так и долговечными файлами кэша. Ghidra пытается использовать стандартные каталоги ОС, предназначенные для этих целей, чтобы избежать нескольких проблем, таких как хранение больших объемов данных в перемещаемом профиле. Если есть подозрение, что расположение этих каталогов по умолчанию вызывает проблемы, их можно изменить, изменив соответствующие свойства в файле support/launch.properties.

Примечания по Java

Для Windows:

Для запуска Ghidra требуется поддерживаемая версия Java Runtime and Development Kit. Путь до JDK должен быть прописан в PATH в Переменных средах . Извлеките дистрибутив JDK (.zip-файл) в нужное место и добавьте каталог bin JDK в свой PATH:

1. Извлечение JDK:

2. Открыть окно Переменные среды:

3. Добавьте каталог bin JDK в переменную PATH:

  • В разделе системные переменные выделите PATH и нажмите кнопку Изменить.
  • Впишите путь до папки bin извлеченного архива

Path JDK

Linux и macOS (OS X): извлечение дистрибутива JDK (.tar.gz file) в нужное место и добавьте каталог bin JDK в PATH:

1. Извлеките JDK:

2. Откройте ./

bashrc редактором по вашему выбору. Например:

3. В самом конце файла добавьте каталог JDK bin в переменную PATH:

  • export PATH=<path of extracted JDK dir>/bin:$PATH

4. Сохраните файл

5. Перезапустите все открытые окна терминала, чтобы изменения вступили в силу

В некоторых случаях может потребоваться, чтобы Ghidra запускалась с определенной версией Java вместо версии, которую Ghidra автоматически находит. Чтобы заставить Ghidra запускаться с определенной версией Java, установите свойство JAVA_HOME_OVERRIDE в файле support/launch.properties. Если для этого свойства установлена несовместимая версия Java, Ghidra вернется к автоматическому поиску совместимой версии.

Структура каталога установки Ghidra

Когда Ghidra установлена, запускаемое программное обеспечение извлекается в новый каталог, который называется <GhidraInstallDir>. Ниже приводится описание каталогов и файлов верхнего уровня, которые можно найти после завершения извлечения файла дистрибутива.

  • Ghidra - базовый каталог. Содержит файлы, необходимые для запуска Ghidra.
  • Extensions - дополнительные компоненты, которые могут расширить функциональность Ghidra и интегрировать ее с другими инструментами.
  • GPL - автономные программы поддержки GPL.
  • server - содержит файлы, связанные с установкой и администрированием сервера Ghidra.
  • support - содержит файлы, полезные для отладки Ghidra.
  • docs - содержит документацию по Ghidra, такую как заметки о выпуске, файлы API, учебные пособия и т. д.
  • ghidraRun.bat - скрипт, используемый для запуска Ghidra.
  • LICENSE.txt - информация о лицензии Ghidra.
  • licenses - содержит лицензии, используемые Ghidra.

Использование гидры (Ghidra)

В графическом режиме (GIU Mode)

  • Перейдите к <GhidraInstallDir>
  • Запустите ghidraRun.bat (Windows) или ghidraRun (Linux или macOS)

Ghidra Server

Ghidra может поддержать нескольких пользователей, работающих вместе над одним проектом. Отдельные пользователи Ghidra запускают и работают над своими собственными локальными копиями конкретного проекта Ghidra, но проверяют изменения в общем репозитории, содержащем все фиксации в этом репозитории. Для получения подробной информации об установке/настройке сервера Ghidra см. <GhidraInstallDir>/server/svrREADME.html.

Пакетный Режим (Headless Mode)

Ghidra традиционно запускается в режиме GUI. Тем не менее, она также способна работать в режиме командной строки. Для получения дополнительной информации см. <GhidraInstallDir>/support/analyzeHeadlessREADME.html.

Single Jar Mode

Как правило, Ghidra устанавливается как целая структура каталогов, которая позволяет модульное включение или удаление наборов функций, а также предоставляет множество файлов, которые могут быть расширены или настроены. Тем не менее, бывают случаи, когда было бы полезно сжать все или некоторые модули Ghidra в один файл jar за счет параметров конфигурации. Это облегчает запуск Ghidra из командной строки для автономной работы или для использования в качестве библиотеки возможностей обратного инжиниринга для другого Java-приложения.

Одиночный файл ghidra.jar можно создать с помощью скрипта <GhidraInstallDir>/support/buildGhidraJar.

Расширения

Расширения являются необязательными компонентами, которые могут:

  • Расширьте функциональность Ghidra с помощью экспериментальных или пользовательских плагинов или анализаторов Ghidra.
  • Интеграция других инструментов с Ghidra, таких как Eclipse или IDAPro.

Ghidra поставляется со следующими расширениями, доступными для использования (и по умолчанию неустановленными), которые можно найти в каталоге <GhidraInstallDir>/Extensions.

  • Eclipse: плагин GhidraDev Eclipse для уже существующей установки Eclipse. Для получения информации об установке и использовании плагина GhidraDev Eclipse см. <GhidraInstallDir>/Extensions/Eclipse/GhidraDev/GhidraDev_README.html.
  • Ghidra: расширения Гидры. См. Примечания по расширению Ghidra для получения дополнительной информации.
  • IDAPro: плагины / загрузчики IDAPro для передачи данных с помощью Ghidra.

Примечания по расширению Ghidra

Расширения предназначены для установки или удаления инструментов из интерфейса Ghidra:

  • Выберите File → Install Extensions.
  • Установите флажки для установки расширений; снимите флажки для удаления расширений
  • Перезапустите Ghidra, чтобы изменения вступили в силу

Установка или удаление расширений Ghidra может завершиться ошибкой, если у пользователя нет прав на запись в <GhidraInstallDir>. Это может произойти, если пользователь запускает Ghidra из общей папки установки. В этом случае владелец каталога установки Ghidra будет отвечать за управление тем, какие расширения Ghidra доступны для данной конкретной установки Ghidra.

Возможно установить и деинсталлировать расширения Ghidra вручную, когда GUI не доступен. Это может потребоваться, если системный администратор управляет расширениями Ghidra общей установки Ghidra от имени пользователя или если пользователь хочет установить расширение в установку Ghidra, которая используется только в командной строке.

Чтобы установить расширение в этих случаях, просто извлеките нужные файлы архива расширений Ghidra в каталог <GhidraInstallDir>/Ghidra/Extensions.

GHIDRA open source дизассемблер от АНБ
other: Windows/Linux

Прикрепленное изображение

Агентство национальной безопасности США решило предоставить всем желающим открытый доступ к своей утилите для реверс-инжиниринга под названием GHIDRA.
GHIDRA является дизассемблером — транслятором для преобразования бинарного кода в текст на языке ассемблера. В таком виде специалисты могут анализировать исполняемые файлы, что бывает необходимо при изучении поведения программы, исходный код которой недоступен.
Утилита написана на Java и имеет графический интерфейс управления (GUI). GHIDRA способна анализировать двоичные файлы в операционных системах Windows, macOS, Linux, Android, iOS и совместима с многими процессорами. При помощи дополнительных модулей можно взаимодействовать с отладчиком OllyDbg или проводить криптоанализ.

Прикрепленное изображение

Типы данных . Улучшена составная реконструкция PDB для попытки pack(1)выравнивания, если выравнивание по умолчанию не удается. (GT-3401)
Типы данных . Добавлена недостающая поддержка многопользовательского объединения союзов и структур, содержащих битовые поля или конечный член гибкого массива. (GT-3479)
Типы данных . Исправлена ошибка включения кнопки сохранения в редакторе структуры при редактировании битовых полей в невыровненной структуре. (GT-3519, выпуск № 1297)
Разборка . Исправлен потенциальный бесконечный цикл с дизассемблером, вызванный переходом на себя с неверной инструкцией слота задержки. (GT-3511, выпуск № 1486)
GUI . Исправлено отображение руководства по процессору для пользователей Microsoft Windows, которое не отображало руководство по процессору и вместо этого отображало пустую страницу в веб-браузере. (GT-3444)
GUI: редактор битовых полей . Добавлена поддержка комментариев к полям в композитный редактор битовых полей. (GT-3410)
Импортер: MachO . Исправлена регрессия загрузчика MachO в Ghidra 9.1.1 при установке символов в правильном месте. (GT-3487, выпуск № 1446)
Языки . Исправлено мнемоника для RSB.wинструкций ARM thumb . (GT-3420, выпуск № 1365)
Языки . Исправлена ошибка в M68000 с некоторыми инструкциями по перемещению, которые не создавали правильных назначений массива. (GT-3429, выпуск № 1394)
Языки . Обновленный индексный файл руководства по процессору x86 с последними руководствами Intel и AMD. (GT-3489, выпуск № 1078)
Многопользовательский: Ghidra Server . Исправлены ошибки удаленного интерфейса Ghidra Server, возникающие при работе с выпуском Java 11.0.6 (и более поздними версиями), которые приводили к "Method is not Remote"ошибкам RemoteException . (GT-3521, выпуск № 1440)
PDB . Исправлено создание XML PDB для классов и структур нулевой длины и устранены различные проблемы с зависимостями типов данных, возникающие в ходе анализа PDB. Изменены номера строк с шестнадцатеричного на десятичное. (GT-3462, выпуск № 1410) плз сделайте зеркало 9.1.2 для RU.
через анонимайзер не выкачивается полностью Если у кого-то есть желание, нужно вытащить зашифрованные в бандлах файлы в игре на Юнити 18 года. Пожалуйста напишите если кто-то умеет или хочет

Ghidra v9.2.2 (декабрь 2020 г.)
Ошибки

Ghidra v9.2.1 (декабрь 2020 г.)
Улучшения

Ghidra v9.2 (ноябрь 2020 г.)
Новые возможности

Графики . Создан новый сервис и реализация графа. Сервис графов предоставляет базовые возможности построения графиков. Он также использовался для создания нескольких различных типов графиков, включая графы блоков кода, графы вызовов и графы AST. Кроме того, был создан сервис экспорта графов, поддерживающий различные форматы. (GP-211)
PDB . Добавлен новый прототип, независимый от платформы анализатор PDB, который обрабатывает и применяет типы данных и символы к программе из необработанного (не преобразованного в XML) файла PDB, что позволяет пользователям более легко использовать информацию PDB. (GT-3112)
Процессоры . Добавлена спецификация процессора M8C SLEIGH. (GT-3052)
Процессоры . Добавлена поддержка процессора RISC-V. (GT-3389, выпуск № 932 ).
Процессоры . Добавлена поддержка процессора Motorola 6809. (GT-3390, выпуск № 1201 ).
Процессоры . Добавлена поддержка процессоров серии CP1600. (GT-3426, выпуск № 1383 ).
Процессоры . Добавлен процессорный модуль V850. (GT-3523, выпуск № 1430 ).
Улучшения

Ghidra

В марте 2019 года Агентство национальной безопасности США (NSA) опубликовало инструментарий для реверс-инжиниринга под названием Ghidra. Пару лет назад я уже слышал это название из утечек на сайте WikiLeaks и был весьма заинтересован, какими инструментами пользуются в NSA (АНБ) для реверса. Настала пора удовлетворить любопытство и посмотреть, хороша ли бесплатная «Гидра» в сравнении с зарекомендовавшими себя инструментами.

Можно ли доверять Ghidra от NSA?

АНБ в рамках программы Technology Transfer Program уже выложила исходники 32 проектов (полный список можете найти на GitHub). Конечно, не обходится без слухов о том, что АНБ будет использовать эти средства для слежения за пользователями. С одной стороны, конечно, код продуктов открыт, а их пользователи достаточно хардкорны, чтобы не полениться и сделать аудит. С другой — первая же проблема появилась сразу после релиза Ghidra.

Постепенно появляются и другие проблемы. Например, была найдена возможность эксплуатировать XXE при условии, что пользователь Ghidra откроет специально сформированный проект. Так что будьте бдительны!

Как скачать Ghidra NSA?

Архив Ghidra в распакованном виде

Архив Ghidra в распакованном виде

Итак, предположим вы уже скачали архив ghidra_9.0_PUBLIC_20190228 и распаковали его. Давайте немного пробежимся по основным папкам и посмотрим, что в них есть.

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

Далее идут папки с лицензиями — в них вы не найдете ничего интересного. В директории server лежит инструмент для запуска сервера удаленной отладки. В папке support собраны дополнительный инструментарий, без которого Гидра откажется работать.

В директории Ghidra уже интереснее: в Processors можно ознакомиться со всеми поддерживаемыми архитектурами. Вот их полный список: 6502, 68000, 6805, 8051, 8085, AARCH64, ARM, Atmel, CR16, DATA, JVM, MIPS, PA-RISC, PIC, PowerPC, Sparc, TI_MSP430, Toy, x86, Z80.

Папки с инструкциями для разных архитектур

Папки с инструкциями для разных архитектур

Обзор Ghidra

Пришло время рассмотреть само приложение. Чтобы открыть Ghidra в Windows, запускаем ghidraRun.bat, в Linux — ghidraRun.sh. Проект написан в основном на Java, поэтому необходимо скачать и установить Java Runtime.

Окно создания проекта Ghidra

Окно создания проекта

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

Основное окно CodeBrowser Ghidra

Основное окно CodeBrowser

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

Выглядит основной интерфейс довольно необычно — во всяком случае, для меня.

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

При первом запуске приложения я столкнулся с немного неудобным отображением кода и других полей в различных окнах дизассемблера. Но все это можно настроить при помощи специальной кнопки Edit the listing fields в верхнем правом углу каждого окна.

Справа находится окно декомпилятора, к нему мы вернемся позже. Там же есть вкладка Functions. Давайте нажмем на нее.

Вкладка Functions

Вкладка Functions

Здесь отображается список функций с их сигнатурами — довольно удобно. Давайте выберем какую-нибудь функцию и посмотрим, что произойдет.

Начальный код дизассемблированной функции Ghidra

Начальный код дизассемблированной функции

Это самое начало функции с ее сигнатурой, передаваемые в нее значения и их типы, возвращаемое значение, конвенция вызова и сам дизассемблерный листинг. В самом верху есть кнопка Display Function Graph, я ее выделил на скриншоте. Нажимаем на нее.

Графическое представление кода в Ghidra Графическое представление кода в IDA Pro

При наведении на кодовые блоки появляется прикольная анимация (видна на скриншоте). Я специально сделал два скриншота одной и той же функции: один в представлении графа в Ghidra, другой — в IDA Pro. Не знаю, как вам, но, на мой взгляд, информативнее граф в Ghidra. К тому же Ghidra помечает прямо в графе конструкции if… else. Я понимаю, что это все ребячество, но лично для меня графическое представление кода в Ghidra более информативно и удобно, нежели в IDA Pro. Кроме того, графическое представление весьма гибко настраивается.

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

Окно поиска по строкам Ghidra NSA

Окно поиска по строкам

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

В Ghidra также имеется встроенный шестнадцатеричный просмотрщик. Чтобы его увидеть, нужно открыть меню «Windows → Bytes».

Встроенный HEX-просмотрщик Ghidra NSA

Встроенный HEX-просмотрщик

Ghidra из коробки поддерживает патчинг ассемблерного кода. Чтобы воспользоваться этой функцией, необходимо выделить строчку кода и нажать комбинацию Ctrl + Shift + G или выбрать соответствующий пункт в контекстном меню. Есть интересная визуальная фишка — если выделить какой-нибудь код в окне декомпилятора, то такой же код автоматически выделяется в окне дизассемблерного листинга. Прикольно!

Выделение кода в Ghidra

Выделение кода в Ghidra

Еще одна интересная функция Ghidra — это Script Manager, набор скриптов на все случаи жизни, поставляющийся из коробки. Если какого-то скрипта не хватает, разумеется, его можно добавить. Все скрипты написаны на Java. Чтобы вы понимали, о чем идет речь, прилагаю полный листинг скрипта CreateExportFileForDll.java. Что он делает, вы поймете из названия.

Скрипты можно редактировать во встроенном простеньком редакторе, а можно открывать в IDE Eclipse прямо из контекстного меню. Разумеется, Eclipse должен быть установлен.

Кроме того, есть разные полезные мелочи, типа встроенного диффера, возможности патчить код без всяких дополнительных плагинов, возможности смотреть энтропию кода и строить дерево вызовов в приложении (трассу). Имеется встроенный интерпретатор Python (не требуется его устанавливать отдельно, как в IDA) и другие приятные фишки.

Теперь давайте посмотрим на декомпилятор, который также идет в комплекте, а не отдельным плагином, как в IDA. Приведу сначала результат работы декомпилятора Ghidra, а потом и IDA Pro.

Это листинг Ghidra:

А это листинг IDA Pro Hex-Rays:

Как по мне, так листинг Ghidra читается попроще. Да, я знаю, что вывод Hex-Rays гибко настраивается. Кроме этого, имеется плагин HexRaysPyTools, который помогает улучшить результат. Но мы-то прежде всего говорим о том, что идет в комплекте, а Hex-Rays еще и стоит отдельных денег.

Так или иначе, модуль декомпиляции в Ghidra могучий и вполне может составить конкуренцию Hex-Rays. А если зайти в папку \Ghidra\Processors, затем выбрать любую архитектуру и далее зайти в \data\languages, можно увидеть файлы с расширениями *.slaspec и *.pspec и еще некоторые. Глядя на них, понимаешь, что написать поддержку своей архитектуры — не такая и сложная задача. Да, все-таки открытости кода сильно не хватает IDA Pro!

Что лучше Ghidra или IDA Pro?

Итак, мы рассмотрели фреймворк для реверс-инжиниринга Ghidra. Сможет ли он заменить IDA Pro? Я думаю, что на данном этапе своего существования — нет. Дело в том, что Java в качестве языка для написания подобных программ, на мой взгляд, не лучший выбор. И дело, конечно, в скорости.

Дизассемблер работает не настолько быстро как хотелось бы, особенно на больших файлах. Скажу больше: файлы размером свыше 150 Мбайт реверсить на Ghidra — та еще пытка. С другой стороны, Ghidra кросс-платформенна, и для кого-то это может стать большим и жирным плюсом.

Другой момент — это количество поддерживаемых архитектур и загрузчиков файлов: у IDA Pro их намного больше. Еще очень не хватает такой же плотной интеграции с отладчиками, как в IDA Pro. Опять же, открытость кодов (если NSA выполнит обещание) — это хорошо, да и возможность добавлять поддержку других архитектур — по-настоящему крутая фишка. Но пока будет выполнена эта работа (и исправлены баги), пройдут годы.

Вообще, у меня сложилось стойкое впечатление, что Ghidra — это не пока еще не конечный и немного сырой продукт. В том виде, в котором этот фреймворк доступен сейчас, он тянет на бета-версию с публичным доступом, но никак не на версию под номером девять. Кстати, в названии архива есть слово PUBLIC. Я уверен, что где-то в закромах АНБ есть еще и версия PRIVATE.

Безусловно, у Ghidra есть свои сильные стороны, и в чем-то она уже превосходит IDA Pro, но слабых мест пока что намного больше. А вот разработчикам IDA есть что позаимствовать в новом инструменте. Например, мне понравилась повышенная информативность кода, представленного в виде графа. Да и само построение графа кода выглядит более строго и упорядоченно. Есть патчинг инструкций без дополнительных плагинов и без разделения на x64 и x86. Зачем держать два ярлыка на рабочем столе, если достаточно одного?

На этом обзор Ghidra подошел к концу. На сегодня хватит, а в следующей статье мы рассмотрим Ghidra от NSA более пристально и разберемся как использовать Ghidra.


АНБ в рамках программы Technology Transfer Program уже открыло исходные коды 32 проектов (полный список можно посмотреть на GitHub). Конечно, не обходится без шуточек о том, что АНБ будет использовать эти средства для слежения за пользователями. С одной стороны, конечно, код продуктов открыт, а их пользователи достаточно хардкорны, чтобы не полениться провести аудит. С другой — первый же косяк нашелся сразу после релиза Ghidra.

Постепенно всплывают и другие баги. Например, была найдена возможность эксплуатировать XXE при условии, что пользователь Ghidra откроет специально сформированный проект. Так что будь начеку!

Архив Ghidra в распакованном виде

Архив Ghidra в распакованном виде

Итак, ты скачал архив ghidra_9.0_PUBLIC_20190228 и распаковал его. Давай немного пробежимся по основным папкам и посмотрим, что в них.

Настоятельно рекомендую заглянуть в папку docs — там много информации о самой Ghidra, о разработке плагинов для нее и обзор основных возможностей в виде слайдов и документов PDF. Вся информация, естественно, на английском.

Далее идут папки с лицензиями — в них ничего интересного. В папке server есть инструментарий для запуска сервера удаленной отладки. В папке support собраны вспомогательные инструменты, без которых программа работать не будет.

В папке Ghidra уже интереснее: в Processors можно ознакомиться со всеми поддерживаемыми архитектурами. Вот их полный список: 6502, 68000, 6805, 8051, 8085, AARCH64, ARM, Atmel, CR16, DATA, JVM, MIPS, PA-RISC, PIC, PowerPC, Sparc, TI_MSP430, Toy, x86, Z80.

Папки с инструкциями для разных архитектур

Папки с инструкциями для разных архитектур

Настало время смотреть само приложение! Чтобы открыть Ghidra в Windows, запускаем ghidraRun.bat , в Linux — ghidraRun.sh . Проект написан в основном на Java, поэтому качай и ставь Java Runtime, если у тебя его нет.

Окно создания проекта

Окно создания проекта

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

Основное окно CodeBrowser

Основное окно CodeBrowser

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

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

При первом запуске приложения я столкнулся с немного неудобным отображением кода и других полей в различных окнах дизассемблера. Но все это можно настроить при помощи специальной кнопки Edit the listing fields в верхнем правом углу каждого окна.

Справа располагается окно декомпилятора, к нему мы еще вернемся. Там же есть вкладка Functions. Давай нажмем на нее.

Вкладка Functions

Вкладка Functions

Здесь видим список функций с их сигнатурами — очень удобно, на мой взгляд. Давай выберем какую-нибудь функцию и посмотрим, что будет.

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Читайте также: