لقد وصل هذا المشروع إلى نهاية حياته ولم يعد يتم الحفاظ عليه. يوفر Ghidra حاليًا البرامج النصية لتحليل RTTI وإعادة بناء الفصل. يجب الآن استخدام هذه البرامج النصية وتحسينها.
تتوفر نسخة مبنية ومرتبطة بالكامل من الوثائق على https://astrelsky.github.io/ghidra-cpp-lay-analyzer.
قم بتشغيل الأمر التالي في محطة من اختيارك.
gradle buildExtension
عند الانتهاء ، سيكون الإخراج موجودًا في مجلد DIST.
استخراج الأرشيف إلى مجلد الوجهة من اختيارك. قم بتشغيل Ghidra ومن مدير المشروع ، انتقل إلى file->Install Extensions... انقر فوق أيقونة + بالقرب من الزاوية اليمنى العليا من النافذة. حدد مسار مجلد Ghidra-CPP-class-analyzer المستخرج وحدد موافق. بعد إعادة تشغيل Ghidra افتح Codebrowser وانتقل إلى file->Configure...->Experimental وحدد ClassTypeInfoManagerPlugin . أعد تشغيل codebrowser للسماح بتحديث المحللين.

- فئة متداخلة - فئة أساسية - فئة مجردة - فئة افتراضية - فئة مجردة افتراضية
هل ترغب في جعل Ghidrascript مع سهولة الوصول إلى ClasStypeInfomanager للبرنامج الحالي؟ حاول تمديد فئة CPPClassAnalyzerghidrascript بدلاً من Ghidrascript. لسوء الحظ ، هذا ممكن حاليًا فقط للنصوص المكتوبة في Java.
النقر بزر الماوس الأيمن داخل نافذة decompiler في وظيفة __thiscall التي يوجد بها classtypeinfo سيحتوي على إجراء لملء الفصل. إنه يتصرف بشكل مشابه لإنشاء بنية Fill Out يتم تحديد أعضاء الفصل من خلال المكالمات إلى وظائف __thiscall الأخرى.
بالنسبة لثنائيات GNU ، يجب إنشاء أرشيف المشروع لتوفير البيانات المطلوبة للتحليل. ستحتاج كل مكتبة تحتوي على RTTI الديناميكي إلى تحليل ونسخها في أرشيف المشروع عبر typeinfotree قبل تحليل البرنامج. في المستقبل ، يتم توزيع أرشيف ويل ل libstdc ++.