Этот проект достиг своего конца жизни и больше не поддерживается. Ghidra в настоящее время предоставляет сценарии для анализа RTTI и реконструкции класса. Эти сценарии должны теперь использоваться и улучшаться.
Полностью построенная и связанная версия документации доступна по адресу https://asterlesky.github.io/ghidra-cpp-class-analyzer.
Запустите следующую команду в терминале по вашему выбору.
gradle buildExtension
После завершения выходной сигнал будет расположен в папке Dist.
Извлеките архив в папку назначения по вашему выбору. Запустите ghidra и от Manager Project Перейдите в file->Install Extensions... щелкните значок + в правом верхнем углу окна. Выберите путь извлеченной папки Ghidra-CPP-Class-Analyzer и выберите OK. После перезапуска ghidra откройте Codebrowser и перейдите в file->Configure...->Experimental и выберите ClassTypeInfoManagerPlugin . Перезагрузите CodeBrowser, чтобы позволить анализаторам обновляться.

- Вложенный класс - Базовый класс - Аннотация класс - Виртуальный класс - Виртуальный абстрактный класс
Хотите сделать GhidraScript с легким доступом к Classtypeinfomanager для текущей программы? Попробуйте расширить класс cppclassanalyzerghidrascript вместо GhidraScript. К сожалению, в настоящее время это возможно только для сценариев, написанных на Java.
Право щелкнет в окне декомпилятора в функции __thiscall , с помощью которой существует Classtypeinfo, будет содержать действие для заполнения класса. Он ведет себя так же, как и действие заполнения структуры Принятия Класса, члены класса определяются с помощью вызовов к другим __thiscall функциям.
Для BNU Binary необходимо будет создано архив проекта, чтобы предоставить данные, необходимые для анализа. Каждую библиотеку, содержащую динамическую RTTI, необходимо будет проанализировать и скопировать в архив проекта через TypeInFotree до анализа программы. В будущем архив будет распространяться для Libstdc ++.