فك كل الأشياء!
IDA Batch Decompile هو مكون إضافي لـ IDA Pro من Hex-Ray يضيف القدرة على فك ترجمة ملفات متعددة واستيرادها مع تعليقات توضيحية إضافية (xref، حجم المكدس var) إلى ملف .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: خطأ[__main__/36908][DEBUG ] [idabatchdecompile.wait_for_analogy_to_finish] [+] في انتظار انتهاء التحليل... [__main__/36908][DEBUG] [idabatchdecompile.wait_for_analogy_to_finish] [+] انتهى التحليل. [__main__/36908][DEBUG ] [idabatchdecompile.load_plugin_decompiler] [+] محاولة تحميل المكونات الإضافية لبرنامج فك الترجمة[__main__/36908][DEBUG ] [idabatchdecompile.load_plugin_decompiler] [+] تم تحميل المكونات الإضافية لبرنامج فك الترجمة. [__main__/36908][DEBUG ] [idabatchdecompile.PLUGIN_ENTRY] [+] الوضع: سطر الأوامر بدون وسيطات[__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]"، "size": 4، "name": " s"، "offset": 0}// {"diff_size": 4، "offset_text": "[bp+4h]"، "الحجم": 4، "الاسم": " r"، "الإزاحة": 4}// {"diff_size": 4، "offset_text": "[bp+8h]"، "الحجم": 4، "الاسم" : "arg_0"، "offset": 8}// {"diff_size": 4، "offset_text": "[bp+Ch]"، "size": 4، "name": "dwBytes"، "offset": 12}// {"diff_size": 4، "offset_text": "[bp+10h]"، "size": 4، "name": "arg_8"، "offset": 16}// ********* **********// ***** XRFS *****// * # 1// sub_30733D0+30// *************** ****int __stdcall sub_3052800(int a1, SIZE_T dwBytes، int a3) { نتيجة كثافة العمليات؛ // إيكس@17 التعامل مع الإصدار 4؛ // إيكس@21...
//github.com/tintinweb