
Decompilatore Ghidra da riga di comando in Python
Questo strumento Python da riga di comando decompila tutte le funzioni di un binario e le scrive in una directory in file C separati:```mermaid
flowchart LR
a(filename ) --> b[ghidrecomp] a2[(Symbol Server)] --> b
b --> e(Ghidra Project Files) b --> output
subgraph output
subgraph decompilations direction LR i(func1.c) h(func2.c) f(funcB.c) end
subgraph callgraphs direction LR j(callgraph1.md) k(callgraph2.md) l(callgraphN.md) end
subgraph bsim-xml direction LR n(sig-md5-bin1.xml) m(sig-md5-bin2.xml) o(sig-md5-binN.xml) end
end
Oppure un singolo file `C` e un file di intestazione con `--cppexport`:```mermaid
flowchart LR
a(filename ) --> b[ghidrecomp]
a2[(Symbol Server)] --> b
b --> e(Ghidra Project Files)
b --> singlefile
subgraph singlefile
direction LR
s1(all_funcs.c)
s2(all_funcs.h)
end
Lo scopo principale di questo è utilizzare le decompilazioni per ricerca e analisi. Lo strumento si basa su Ghidra per la decompilazione e comunica con Ghidra tramite jpype via pyghidra.
tutte queste funzionalità sono in definitiva fornite da Ghidra
-o OUTPUT_PATH)--cppexport)-s SYMBOLS_PATH)
--sym-file-path)--filter)--gdt)--sast) con Semgrep per l'analisi statica del codice decompilato