
Ghidrust: Extensão de Análise Binária Rust para Ghidra
Status: O desenvolvimento foi pausado permanentemente. Este plugin está em uma condição parcialmente utilizável. Poucos recursos de análise binária da ferrugem foram upsed para Ghidra desde a criação deste plug -in.
A identificação binária de ferrugem de Ghidra agora é superior a este plug -in. Os únicos outros recursos que este plug -in fornece é o da integração do banco de dados do FunctionID e transpilando o código C descompilado para o código RURN. Ambos são bastante escamosos.
Ainda ficarei feliz em aceitar qualquer patches ou solicitações de puxar, mas não haverá nenhum desenvolvimento ativo. Sinta -se à vontade para gastar este projeto ou criar um novo. Informe -me se você o fizer, ficarei feliz em adicionar o link do seu projeto aqui como uma alternativa.

Este projeto fazia parte de um dos meus cursos do Instituto. Para uma visão geral detalhada, consulte o relatório criado para o envio do curso. O readme a seguir é bastante escasso.
O plug -in pode detectar binários de ferrugem. Para usar o recurso, clique em GhidRust -> Check if Rust binary . Ele mostrará um pop -up indicando se é um binário de ferrugem ou não.
| Pode não ser um binário de ferrugem | Pode ser um binário de ferrugem |
|---|---|
![]() | ![]() |
O plug -in também consiste em RustStdAnalyzer , que analisa binários de ferrugem e aplica assinaturas de funções às funções da biblioteca ( std de Rust) encontradas no binário. Isso é feito usando o banco de dados .fidb Function ID. Um banco de dados padrão para X86-64 e Rust Versão 1.58.1 foi fornecido em libstd.fidb . Isso é útil ao analisar binários de ferrugem despojados.
| Sem ID da função | Com ID da função |
|---|---|
![]() | ![]() |
O analisador é ativado por padrão para binários de ferrugem e seu nome na janela do analisador é "detectar funções de ferrugem LIBSTD" .

Este é um recurso de trabalho em andamento a partir de agora. Requer analisar o código C descompilado e emitir o código de ferrugem correspondente. Uma vez feito isso, o suporte à macro de ferrugem também será adicionado no futuro.
O painel Decompiler pode ser acessado clicando GhidRust -> Open decompiler . Parece o seguinte.

Há um script de compilação fornecido ( build.sh ) que pode construir e instalar a extensão.
$ ./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
Você pode criar a extensão usando o seguinte comando.
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
Você pode instalá -lo usando o sinalizador de instalação da seguinte forma.
./build.sh -ig <GHIDRA_INSTALL_DIR>
Para adicioná -lo ao ghidra, basta clicar no File -> Install Extensions... e escolher Ghidrust lá. Depois de instalado, você terá uma entrada GhidRust na barra de ferramentas Ghidra, que pode ser usada para invocar o plug -in.
Pode ser necessário ativá -lo a partir do File -> Configure... menu. Escolha a seção Miscellaneous e clique na caixa de seleção ao lado do RustDecplugin .