
Ghidrust: تمديد تحليل الثنائي الصدأ ل Ghidra
الحالة: تم إيقاف التنمية بشكل دائم. هذا البرنامج المساعد في حالة قابلة للاستخدام جزئيًا. تم تنظيم عدد قليل من ميزات التحليل الثنائي للصدأ إلى Ghidra منذ إنشاء هذا البرنامج المساعد.
إن تحديد الهوية الثنائية الصدأ من Ghidra متفوق الآن على هذا البرنامج المساعد. الميزات الأخرى الوحيدة التي يوفرها هذا المكون الإضافي هي التكامل في قاعدة بيانات الوظائف ونقل رمز C Decomplized إلى رمز الصدأ. كلاهما قشاري للغاية.
سأظل سعيدًا بقبول أي تصحيحات أو طلبات سحب ، ولكن لن يكون هناك أي تطور نشط. لا تتردد في توتر هذا المشروع أو إنشاء مشروع جديد. واسمحوا لي أن أعرف إذا كنت تفعل ذلك ، سأكون سعيدًا بإضافة رابط مشروعك هنا كبديل.

كان هذا المشروع جزءًا من إحدى دورات المعهد. للحصول على نظرة عامة مفصلة ، يرجى إلقاء نظرة على التقرير الذي تم إنشاؤه لتقديم الدورة. ReadMe التالي متناثر إلى حد ما.
يمكن أن يكتشف البرنامج المساعد ثنائيات الصدأ. لاستخدام الميزة ، انقر فوق GhidRust -> Check if Rust binary . سيظهر نافذة منبثقة تشير إلى ما إذا كان صدأ ثنائي أم لا.
| قد لا يكون صدأ ثنائي | قد يكون ثنائي الصدأ |
|---|---|
![]() | ![]() |
يتكون المكون الإضافي أيضًا من RustStdAnalyzer الذي يحلل ثنائيات الصدأ ويطبق توقيعات الوظائف على وظائف المكتبة ( std الصدأ) الموجودة في الثنائي. يتم ذلك باستخدام قاعدة بيانات معرف دالة .fidb . تم توفير قاعدة بيانات افتراضية لـ x86-64 و Rust الإصدار 1.58.1 على libstd.fidb . هذا مفيد عند تحليل ثنائيات الصدأ المجردة.
| بدون معرف الوظيفة | مع معرف الوظيفة |
|---|---|
![]() | ![]() |
يتم تمكين المحلل افتراضيًا لثنائيات الصدأ ، واسمه في نافذة المحلل هو "اكتشاف وظائف الصدأ libstd" .

هذه ميزة عمل في مجال العمل حتى الآن. يتطلب تحليل رمز C Decomplized ثم انبعاث رمز الصدأ المقابل. بمجرد الانتهاء من ذلك ، سيتم إضافة دعم Macro Rust في المستقبل.
يمكن الوصول إلى لوحة Decompiler من خلال النقر فوق GhidRust -> Open decompiler . يبدو على النحو التالي.

يوجد برنامج نصي إنشاء ( build.sh ) والذي يمكنه إنشاء وتمديد التثبيت.
$ ./build.sh -h
GhidRust install script
Usage: build.sh [-i | --install] -g GHIDRA_PATH
-i | --install Install the extension
-g | --ghidra Path to Ghidra installation (usually /opt/ghidra)
-h | --help Show usage/help
يمكنك بناء الامتداد باستخدام الأمر التالي.
$ ./build.sh -g <GHIDRA_INSTALL_DIR>
يمكنك تثبيته باستخدام علامة التثبيت على النحو التالي.
./build.sh -ig <GHIDRA_INSTALL_DIR>
لإضافته إلى Ghidra ، فقط انقر فوق File -> Install Extensions... واختر Ghidrust هناك. بمجرد التثبيت ، سيكون لديك إدخال GhidRust في شريط أدوات Ghidra والذي يمكن استخدامه لاستدعاء البرنامج المساعد.
قد تحتاج إلى تفعيله من File -> Configure... القائمة. اختر القسم Miscellaneous ، وانقر فوق خانة الاختيار بجانب RustDecplugin .