
إضافة Hex-Rays Decompiler لتحسين التنقل في الكود
| | | | | ___ \ / __ \ | | \ \ / / | |
| || | _____ | |/ /__ _ _ _ | / / ___ | | ___ \ V / _ __ | | ___ _ __ ___ _ __
| _ |/ _ \ / / // | | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |
_| |/_//__| __,|_, |/_/_/ _,|_/ / ./||___/|| ___||
/ | | |
|/ |_|
============================================================================
إضافة مفكك الشيفرة Hex-Rays لتحسين التنقل في الكود أثناء عملية الهندسة العكسية. تعمل CodeXplorer على أتمتة إعادة بناء الكود لتطبيقات C++ أو البرامج الضارة الحديثة مثل Stuxnet وFlame وEquation وAnimal Farm... :octocat:
إضافة CodeXplorer هي واحدة من أول الإضافات المتاحة للجمهور لمفكك شيفرة Hex-Rays. نحن نحافظ على تحديث هذا المشروع ونستمر في إضافة ميزات جديدة بشكل متكرر. كما تم تقديم أكثر ميزات CodeXplorer إثارة للاهتمام في العديد من المؤتمرات الأمنية مثل: REcon وZeroNights وH2HC وNSEC وBHUS 👾
المساهمون:
Alex Matrosov (@matrosov)
Eugene Rodionov (@rodionov)
Rodrigo Branco (@rrbranco)
Gabriel Barbosa (@gabrielnb)
الإصدارات المدعومة من منتجات Hex-Rays: نركز دائمًا على أحدث إصدارات IDA ومفكك الشيفرة لأننا نحاول استخدام الميزات الجديدة المثيرة للاهتمام في إصدارات SDK الجديدة. وهذا يعني أيضًا أننا اختبرنا فقط على أحدث إصدارات منتجات Hex-Rays ولا نضمن العمل المستقر على الإصدارات السابقة.
لماذا ليس IdaPython: تم تطوير جميع الشيفرات بلغة C/C++ لأنها طريقة أكثر استقرارًا لدعم إضافة معقدة لمفكك شيفرة Hex-Rays.
المنصات المدعومة: x86/x64 لأنظمة Win وLinux وMac.
HexRaysCodeXplorer - إضافة مفكك الشيفرة Hex-Rays لسهولة التنقل في الكود. تظهر قائمة السياق بزر الفأرة الأيمن في نافذة Pseudocode أوامر إضافة CodeXplorer:

💎 إليك الميزات الرئيسية لإضافة CodeXplorer: 💎

يتم عرض البنية المعاد بناؤها في "نافذة الإخراج". تم تقديم معلومات مفصلة عن ميزة إعادة بناء النوع في منشور المدونة "إعادة بناء النوع في HexRaysCodeXplorer".
كما تدعم إضافة CodeXplorer إعادة بناء النوع تلقائيًا إلى مخزن الأنواع المحلية في IDA.

struct_local_data_storage تم تحديد جدولي دوال افتراضية، ونتيجة لذلك، تم إنشاء بنيتين مقابلتين: struct_local_data_storage_VTABLE_0 و struct_local_data_storage_VTABLE_4.



استخراج أنواع إلى ملف – تفريغ جميع معلومات النوع (بما في ذلك الأنواع المعاد بناؤها) إلى ملف.
التنقل عبر استدعاءات الدوال الافتراضية في نافذة Pseudocode الخاصة بـ HexRays. بعد تمثيل كائنات C++ ببنى C، تتيح هذه الميزة التنقل بالنقر بالماوس إلى استدعاءات الدوال الافتراضية كحقول بنية:



يدعم مستكشف الكائنات الميزات التالية:
إنشاء تلقائي لبنى VTBL في مخزن الأنواع المحلية في IDA
التنقل في قائمة الجدول الافتراضي والانتقال إلى عنوان VTBL في نافذة "IDA View" بالنقر
عرض تلميحات للموضع الحالي في قائمة الجدول الافتراضي
عرض قائمة المراجع المتقاطعة بالنقر على القائمة في "Show XREFS to VTBL"


وضع الدفعة يحتوي على الميزات التالية:
مثال (تفريغ الأنواع و ctrees للدوال ذات بادئة الاسم "crypto_"):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
التجميع:
Windows:
src/HexRaysCodeXplorer/PropertySheet.props في notepad(++) وقم بتحديث قيم المسارات IDADIR و IDASDK لتشير إلى مسار تثبيت IDA ومسار IDA7 SDK وفقًا لذلك. يجب أن يكون HexRays SDK في $IDADIR\plugins\hexrays_sdk (كما هو افتراضي)Release | x64 و Release x64 | x64Linux:
Mac:
.pmc في IDA 7.0 يجب أن يكون .dylibexport IDA_DIR="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS" && export IDA_SDK="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/idasdk" && make -f makefile7.macHexRaysCodeXplorer.xcodeprojمع CMake:
============================================================================
محادثات المؤتمرات حول إضافة CodeXplorer: