
Ghidrust: разгибание бинарного анализа ржавчины для ghidra
Статус: разработка была приостановлена навсегда. Этот плагин находится в частично полезном состоянии. С момента создания этого плагина было несколько функций бинарного анализа ржавчины.
Двоичная идентификация Гидры теперь превосходит этот плагин. Единственные другие функции, которые предоставляет этот плагин, - это функциональная интеграция базы данных и транспорт декомпилированный C -код в код Rust. Оба они довольно сложены.
Я все еще буду рад принять любые патчи или запросы на привлечение, но не будет никакой активной разработки. Не стесняйтесь раскошелиться на этот проект или создавать новый. Пожалуйста, дайте мне знать, если вы это сделаете, я буду рад добавить ссылку вашего проекта здесь в качестве альтернативы.

Этот проект был частью одного из моих курсов Института. Для получения подробного обзора, пожалуйста, посмотрите на отчет, созданный для отправки курса. Следующая Readme довольно скудна.
Плагин может обнаружить двоичные файлы ржавчины. Чтобы использовать эту функцию, нажмите на GhidRust -> Check if Rust binary . Он покажет всплывающее окно, указывающее, является ли это бинарным из ржавчины или нет.
| Не может быть двоичным ржавением | Может быть двоичным ржавением |
|---|---|
![]() | ![]() |
Плагин также состоит из RustStdAnalyzer , который анализирует двоичные файлы Rust и применяет функциональные подписи к библиотечным функциям (Rust's std ), найденным в двоичном файле. Это делается с использованием базы данных идентификатора функции .fidb . База данных по умолчанию для X86-64 и Rust Version 1.58.1 была предоставлена на libstd.fidb . Это полезно при анализе разряженных двоичных файлов ржавчины.
| Без идентификатора функции | С идентификатором функции |
|---|---|
![]() | ![]() |
Анализатор включен по умолчанию для двоичных файлов ржавчины, а его имя в окне анализатора - «Обнаружение rust libstd -функции» .

На данный момент это работа по работе. Это требует анализа декомпилированного кода C, а затем излучать соответствующий код Rust. Как только это будет сделано, поддержка макроса Rust также будет добавлена в будущем.
Доступ к панели декомпилятора можно получить, нажав GhidRust -> Open decompiler . Это выглядит следующим образом.

Существует сценарий сборки ( build.sh ), который может построить и установить расширение.
$ ./build.sh -h
GhidRust install script
Usage: build.sh [-i | --install] -g GHIDRA_PATH
-i | --install Install the extension
-g | --ghidra Path to Ghidra installation (usually /opt/ghidra)
-h | --help Show usage/help
Вы можете построить расширение, используя следующую команду.
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
Вы можете установить его, используя флаг установки следующим образом.
./build.sh -ig <GHIDRA_INSTALL_DIR>
Чтобы добавить его в Ghidra, просто нажмите на File -> Install Extensions... и выберите там Ghidrust. После установки у вас будет запись GhidRust на панели инструментов Ghidra, которую можно использовать для вызова плагина.
Возможно, вам придется активировать его из File -> Configure... меню. Выберите раздел Miscellaneous и нажмите на флажок рядом с Rustdecplugin .