ถอดรหัสทุกสิ่ง!
IDA Batch Decompile เป็นปลั๊กอินสำหรับ IDA Pro ของ Hex-Ray ที่เพิ่มความสามารถในการแยกคอมไพล์ไฟล์หลายไฟล์เป็นชุดและการนำเข้าด้วยคำอธิบายประกอบเพิ่มเติม (xref, ขนาด stack var) ลงในไฟล์ pseudocode .c
เยี่ยมเลย! - ida-batch_decompile ยังเป็นส่วนหนึ่งของโปรเจ็กต์: unbox - เครื่องมือบรรทัดคำสั่ง nobrainer เพื่อแตกและถอดรหัสสิ่งต่าง ๆ ทุกประเภท
เปิดเป้าหมาย รอให้การวิเคราะห์เสร็จสิ้น
IDA Pro -> File/Script file... -> <this_python_script>
IDA Pro -> File/Produce file-> IdaDecompileBatch ...
ติ๊ก Annotate StackVarSize
, Annotate Func XRefs
คลิก OK
เพื่อถอดรหัส
หมายเหตุ: ไฟล์จะถูกบันทึกในโฟลเดอร์เป้าหมายเป็น <target_image_name.c>
<path_to_ida>/ida(w|w64)(.exe) -B -M -S"<path_to_this_script> "--option1" "--option2"" "<target>"
โปรดทราบว่าตัวเลือกจะต้องมีเครื่องหมายคำพูด "
ตัวเลือกที่ใช้ได้ โปรดดู --help
--output ... output file path --annotate-stackvar-size ... annotate function stack variable sizes --annotate-xrefs ... annotate function xrefs --imports ... process imports --recursive ... recursive batch decompile --experimental-decompile-cgraph ... experimental: manually decompile function call graph
ปฏิบัติตามเอกสารของ IDA Pro เกี่ยวกับวิธีเพิ่มปลั๊กอิน Python
IDA Pro -> File/Produce file -> IdaDecompileBatch ...
[__main__/36908][DEBUG ] [idabatchdecompile.PLUGIN_ENTRY ] [+] กำลังเริ่มต้น IdaDecompileBatchPlugin[__main__/36908][DEBUG ] [idabatchdecompile.__init__ ] [+] is_windows: True[__main__/36908][DEBUG ] [idabatchdecompile.__init__ ] [+] is_ida64: False[__main__/36908][DEBUG ] [idabatchdecompile.wait_for_analysis_to_finish] [+] กำลังรอให้การวิเคราะห์เสร็จสิ้น... [__main__/36908][DEBUG ] [idabatchdecompile.wait_for_analysis_to_finish] [+] การวิเคราะห์เสร็จสิ้น [__main__/36908][DEBUG ] [idabatchdecompile.load_plugin_decompiler] [+] พยายามโหลดปลั๊กอินตัวถอดรหัส[__main__/36908][DEBUG ] [idabatchdecompile.load_plugin_decompiler] [+] โหลดปลั๊กอินตัวถอดรหัสแล้ว [__main__/36908][DEBUG ] [idabatchdecompile.PLUGIN_ENTRY ] [+] โหมด: commandline ที่ไม่มี args[__main__/36908][DEBUG ] [idabatchdecompile.set_ctrl ] [+] IdaDecompileBatchPlugin.set_ctrl(<__main__.IdaDecompileBatchController object at 0x056FCF90>) [__main__/36908][DEBUG ] [idabatchdecompile.init ] [+] IdaDecompileBatchPlugin.init() [__main__/36908][DEBUG ] [idabatchdecompile.init ] [+] การตั้งค่าเมนู[__main__/36908][INFO ] [idabatchdecompile.PLUGIN_ENTRY ] [i] IdaDecompileBatch โหลดแล้ว ดูเมนู: ('ไฟล์/ผลิตไฟล์/', 'IdaDecompileBatch ...') ... แอปพลิเคชันได้รับการถอดรหัสอย่างสมบูรณ์แล้ว [__main__/36908][DEBUG ] [idabatchdecompile.decompile_all ] [+] เสร็จสิ้นการถอดรหัส 'dbghelp.dll' เป็น 'dbghelp.c'
//----- (03052800) -------------------------------------------- ----------------// **** ตัวแปร ****// * ขนาดสแต็ก: 20// {"diff_size": 4, "offset_text": "[bp +0h]", "ขนาด": 4, "ชื่อ": " s", "ออฟเซ็ต": 0}// {"diff_size": 4, "offset_text": "[bp+4h]", "ขนาด": 4, "ชื่อ": " r", "ออฟเซ็ต": 4}// {"diff_size": 4, "offset_text": "[bp+8h]", " ขนาด": 4, "ชื่อ": "arg_0", "ออฟเซ็ต": 8}// {"diff_size": 4, "offset_text": "[bp+Ch]", "ขนาด": 4, "ชื่อ": "dwBytes", "offset": 12}// {"diff_size": 4, "offset_text": "[bp+10h]", " ขนาด": 4, "ชื่อ": "arg_8", "ออฟเซ็ต": 16}// *******************// ***** XREFS ** ***// * # 1// sub_30733D0+30// *******************int __stdcall sub_3052800(int a1, SIZE_T dwBytes, int a3) { ผลลัพธ์ int; // eax@17 ด้ามจับ v4; // eax@21...
//github.com/tintinweb