From 4864ede6684833163153343b9604619c7e7a5dd6 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Sat, 26 Oct 2024 13:59:46 -0400 Subject: MSVC RTTI: misc formatting --- plugins/msvc_rtti/plugin.cpp | 4 ++++ plugins/msvc_rtti/rtti.cpp | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'plugins') diff --git a/plugins/msvc_rtti/plugin.cpp b/plugins/msvc_rtti/plugin.cpp index 03ece2b7..8c7d5be5 100644 --- a/plugins/msvc_rtti/plugin.cpp +++ b/plugins/msvc_rtti/plugin.cpp @@ -7,11 +7,13 @@ using namespace BinaryNinja; static Ref rttiBackgroundTask = nullptr; static Ref vftBackgroundTask = nullptr; + bool MetadataExists(Ref view) { return view->QueryMetadata(VIEW_METADATA_MSVC) != nullptr; } + void RTTIAnalysis(Ref analysisContext) { auto view = analysisContext->GetBinaryView(); @@ -29,6 +31,7 @@ void RTTIAnalysis(Ref analysisContext) rttiBackgroundTask->Finish(); } + void VFTAnalysis(Ref analysisContext) { auto view = analysisContext->GetBinaryView(); @@ -41,6 +44,7 @@ void VFTAnalysis(Ref analysisContext) vftBackgroundTask->Finish(); } + extern "C" { BN_DECLARE_CORE_ABI_VERSION diff --git a/plugins/msvc_rtti/rtti.cpp b/plugins/msvc_rtti/rtti.cpp index 6c0a2275..6d7bb641 100644 --- a/plugins/msvc_rtti/rtti.cpp +++ b/plugins/msvc_rtti/rtti.cpp @@ -307,6 +307,7 @@ Ref ClassInfo::SerializedMetadata() return new Metadata(classInfoMeta); } + ClassInfo ClassInfo::DeserializedMetadata(const Ref &metadata) { std::map > classInfoMeta = metadata->GetKeyValueStore(); @@ -320,6 +321,7 @@ ClassInfo ClassInfo::DeserializedMetadata(const Ref &metadata) return info; } + Ref VirtualFunctionTableInfo::SerializedMetadata() { std::vector > funcsMeta; @@ -332,6 +334,7 @@ Ref VirtualFunctionTableInfo::SerializedMetadata() return new Metadata(vftMeta); } + VirtualFunctionTableInfo VirtualFunctionTableInfo::DeserializedMetadata(const Ref &metadata) { std::map > vftMeta = metadata->GetKeyValueStore(); @@ -344,6 +347,7 @@ VirtualFunctionTableInfo VirtualFunctionTableInfo::DeserializedMetadata(const Re return vftInfo; } + Ref VirtualFunctionInfo::SerializedMetadata() { std::map > vFuncMeta; @@ -351,6 +355,7 @@ Ref VirtualFunctionInfo::SerializedMetadata() return new Metadata(vFuncMeta); } + VirtualFunctionInfo VirtualFunctionInfo::DeserializedMetadata(const Ref &metadata) { std::map > vFuncMeta = metadata->GetKeyValueStore(); @@ -358,6 +363,7 @@ VirtualFunctionInfo VirtualFunctionInfo::DeserializedMetadata(const Ref MicrosoftRTTIProcessor::SerializedMetadata() { std::map > classesMeta; @@ -372,6 +378,7 @@ Ref MicrosoftRTTIProcessor::SerializedMetadata() return new Metadata(msvcMeta); } + void MicrosoftRTTIProcessor::DeserializedMetadata(const Ref &metadata) { std::map > msvcMeta = metadata->GetKeyValueStore(); @@ -385,6 +392,7 @@ void MicrosoftRTTIProcessor::DeserializedMetadata(const Ref &metadata) } } + std::optional MicrosoftRTTIProcessor::DemangleName(const std::string &mangledName) { QualifiedName demangledName = {}; @@ -604,9 +612,7 @@ std::optional MicrosoftRTTIProcessor::ProcessVFT(uint6 } -MicrosoftRTTIProcessor::MicrosoftRTTIProcessor(const Ref &view, bool useMangled, bool checkRData, - bool vftSweep) : m_view( - view) +MicrosoftRTTIProcessor::MicrosoftRTTIProcessor(const Ref &view, bool useMangled, bool checkRData, bool vftSweep) : m_view(view) { m_logger = new Logger("Microsoft RTTI"); allowMangledClassNames = useMangled; @@ -690,6 +696,7 @@ void MicrosoftRTTIProcessor::ProcessRTTI() m_logger->LogInfo("ProcessRTTI took %f seconds", elapsed_time.count()); } + void MicrosoftRTTIProcessor::ProcessVFT() { std::map vftMap = {}; -- cgit v1.3.1