
Python-интерфейс командной строки для декомпилятора Ghidra
Этот инструмент командной строки на Python декомпилирует все функции бинарного файла и сохраняет их в каталог в виде отдельных C-файлов:```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
Или один файл `C` и заголовочный файл с `--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
Основная цель этого — использовать декомпиляции для исследований и анализа. Инструмент полагается на Ghidra для декомпиляции и взаимодействует с Ghidra через jpype посредством pyghidra.
все эти функции в конечном итоге предоставляются Ghidra
-o OUTPUT_PATH)--cppexport)-s SYMBOLS_PATH)
--sym-file-path)--filter)--gdt)--sast) с помощью Semgrep для статического анализа декомпилированного кода