
Ghidrust: Extensión de análisis binario de óxido para Ghidra
Estado: el desarrollo se ha detenido permanentemente. Este complemento está en una condición parcialmente utilizable. Pocas características de análisis binario de óxido se han elevado a Ghidra desde la creación de este complemento.
La identificación binaria de óxido de Ghidra ahora es superior a este complemento. Las únicas otras características que proporciona este complemento es la de la integración de la base de datos FunctionID y de la transposición del código C descompilado al código de oxidación. Ambos son bastante escamosos.
Todavía estaré encantado de aceptar cualquier parche o solicitud de extracción, pero no habrá ningún desarrollo activo. Siéntase libre de desembolsar este proyecto o crear uno nuevo. Avíseme si lo hace, estaré encantado de agregar el enlace de su proyecto aquí como alternativa.

Este proyecto fue parte de uno de mis cursos de Institute. Para obtener una descripción detallada, eche un vistazo al informe creado para el envío del curso. El siguiente readme es bastante escaso.
El complemento puede detectar binarios de óxido. Para usar la función, haga clic en GhidRust -> Check if Rust binary . Mostrará una ventana emergente que indica si es un binario de óxido o no.
| Puede no ser un binario de óxido | Puede ser un binario de óxido |
|---|---|
![]() | ![]() |
El complemento también consiste en RustStdAnalyzer que analiza los binarios de óxido y aplica firmas de funciones a las funciones de la biblioteca ( std de Rust) que se encuentran en el binario. Esto se hace utilizando la base de datos de ID de función .fidb . Se ha proporcionado una base de datos predeterminada para X86-64 y Rust Version 1.58.1 en libstd.fidb . Esto es útil al analizar binarios de óxido despojados.
| Sin ID de función | Con ID de función |
|---|---|
![]() | ![]() |
El analizador está habilitado de forma predeterminada para binarios de óxido, y su nombre en la ventana del analizador es "detectar las funciones de Libstd de óxido" .

Esta es una característica de trabajo en progreso a partir de ahora. Requiere analizar el código C descompilado y luego emitir el código de óxido correspondiente. Una vez hecho esto, el soporte de macro de óxido también se agregará en el futuro.
Se puede acceder al panel de descompilador haciendo clic en GhidRust -> Open decompiler . Se ve de la siguiente manera.

Hay un script de compilación proporcionado ( build.sh ) que puede construir e instalar la extensión.
$ ./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
Puede construir la extensión utilizando el siguiente comando.
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
Puede instalarlo utilizando el indicador de instalación de la siguiente manera.
./build.sh -ig <GHIDRA_INSTALL_DIR>
Para agregarlo a Ghidra, simplemente haga clic en File -> Install Extensions... y elija Ghidrust allí. Una vez instalado, tendrá una entrada GhidRust en la barra de herramientas de Ghidra que se puede usar para invocar el complemento.
Es posible que deba activarlo desde el menú del File -> Configure... Elija la sección Miscellaneous y haga clic en la casilla de verificación al lado de RustDecplugin .