
Python-Befehlszeilen-Ghidra-Dekompilierer
Dieses Python-Kommandozeilenwerkzeug dekompiliert alle Funktionen einer Binärdatei und schreibt sie in ein Verzeichnis in separaten C-Dateien:```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
Oder eine einzelne Datei `C` und Header-Datei mit `--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
Der Hauptzweck besteht darin, die Dekompilierungen für Forschung und Analyse zu nutzen. Das Tool verwendet Ghidra zur Dekompilierung und kommuniziert mit Ghidra über jpype via pyghidra.
alle diese Funktionen werden letztendlich von Ghidra bereitgestellt
-o OUTPUT_PATH)--cppexport)-s SYMBOLS_PATH)
--sym-file-path)--filter)--gdt)--sast) mit Semgrep zur statischen Analyse des dekompilierten Codes