From 93e92844d77b72f07bd7563211d60dc3595cc2e0 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Wed, 4 Dec 2024 18:17:10 -0500 Subject: Consolidate metadata for RTTI processors and a bunch of misc fixes Also allows for both processors to be ran for a single binary --- plugins/rtti/itanium.h | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) (limited to 'plugins/rtti/itanium.h') diff --git a/plugins/rtti/itanium.h b/plugins/rtti/itanium.h index 01a765bb..98fe7052 100644 --- a/plugins/rtti/itanium.h +++ b/plugins/rtti/itanium.h @@ -108,29 +108,20 @@ namespace BinaryNinja::RTTI::Itanium { PointerToMemberTypeInfo(BinaryView *view, uint64_t address); }; - class ItaniumRTTIProcessor + class ItaniumRTTIProcessor : public RTTIProcessor { - Ref m_view; - Ref m_logger; bool allowMangledClassNames; bool checkWritableRData; bool virtualFunctionTableSweep; - std::map m_classInfo; - - void DeserializedMetadata(const Ref &metadata); - - std::optional ProcessVTT(uint64_t vttAddr, const ClassInfo &classInfo); + std::optional ProcessRTTI(uint64_t objectAddr) override; + std::optional ProcessVFT(uint64_t vftAddr, ClassInfo &classInfo) override; public: - ItaniumRTTIProcessor(const Ref &view, bool useMangled = true, bool checkRData = true, bool vttSweep = true); - - Ref SerializedMetadata(); - - void ProcessRTTI(); + explicit ItaniumRTTIProcessor(const Ref &view, bool useMangled = true, bool checkRData = true, bool vttSweep = true); - std::optional ProcessRTTI(uint64_t objectAddr); + void ProcessRTTI() override; - void ProcessVTT(); + void ProcessVFT() override; }; } \ No newline at end of file -- cgit v1.3.1