
# مترجم Ghidra عبر سطر الأوامر بلغة بايثون
تقوم هذه الأداة المكتوبة بلغة بايثون والتي تعمل عبر سطر الأوامر بفك ترجمة جميع دوال الملف الثنائي وكتابتها في مجلد في ملفات 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 للتحليل الثابت للكود المُفكَّك