diff options
| author | Mason Reed <mason@vector35.com> | 2024-10-26 13:59:46 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2024-10-26 13:59:46 -0400 |
| commit | 4864ede6684833163153343b9604619c7e7a5dd6 (patch) | |
| tree | eece5a31cef849d1df4c2e38474ce3e3b730024b /plugins | |
| parent | 27a74f2ed3256405ebd8ace5e01abb411a24cc95 (diff) | |
MSVC RTTI: misc formatting
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/msvc_rtti/plugin.cpp | 4 | ||||
| -rw-r--r-- | plugins/msvc_rtti/rtti.cpp | 13 |
2 files changed, 14 insertions, 3 deletions
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<BackgroundTask> rttiBackgroundTask = nullptr; static Ref<BackgroundTask> vftBackgroundTask = nullptr; + bool MetadataExists(Ref<BinaryView> view) { return view->QueryMetadata(VIEW_METADATA_MSVC) != nullptr; } + void RTTIAnalysis(Ref<AnalysisContext> analysisContext) { auto view = analysisContext->GetBinaryView(); @@ -29,6 +31,7 @@ void RTTIAnalysis(Ref<AnalysisContext> analysisContext) rttiBackgroundTask->Finish(); } + void VFTAnalysis(Ref<AnalysisContext> analysisContext) { auto view = analysisContext->GetBinaryView(); @@ -41,6 +44,7 @@ void VFTAnalysis(Ref<AnalysisContext> 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<Metadata> ClassInfo::SerializedMetadata() return new Metadata(classInfoMeta); } + ClassInfo ClassInfo::DeserializedMetadata(const Ref<Metadata> &metadata) { std::map<std::string, Ref<Metadata> > classInfoMeta = metadata->GetKeyValueStore(); @@ -320,6 +321,7 @@ ClassInfo ClassInfo::DeserializedMetadata(const Ref<Metadata> &metadata) return info; } + Ref<Metadata> VirtualFunctionTableInfo::SerializedMetadata() { std::vector<Ref<Metadata> > funcsMeta; @@ -332,6 +334,7 @@ Ref<Metadata> VirtualFunctionTableInfo::SerializedMetadata() return new Metadata(vftMeta); } + VirtualFunctionTableInfo VirtualFunctionTableInfo::DeserializedMetadata(const Ref<Metadata> &metadata) { std::map<std::string, Ref<Metadata> > vftMeta = metadata->GetKeyValueStore(); @@ -344,6 +347,7 @@ VirtualFunctionTableInfo VirtualFunctionTableInfo::DeserializedMetadata(const Re return vftInfo; } + Ref<Metadata> VirtualFunctionInfo::SerializedMetadata() { std::map<std::string, Ref<Metadata> > vFuncMeta; @@ -351,6 +355,7 @@ Ref<Metadata> VirtualFunctionInfo::SerializedMetadata() return new Metadata(vFuncMeta); } + VirtualFunctionInfo VirtualFunctionInfo::DeserializedMetadata(const Ref<Metadata> &metadata) { std::map<std::string, Ref<Metadata> > vFuncMeta = metadata->GetKeyValueStore(); @@ -358,6 +363,7 @@ VirtualFunctionInfo VirtualFunctionInfo::DeserializedMetadata(const Ref<Metadata return vFuncInfo; } + Ref<Metadata> MicrosoftRTTIProcessor::SerializedMetadata() { std::map<std::string, Ref<Metadata> > classesMeta; @@ -372,6 +378,7 @@ Ref<Metadata> MicrosoftRTTIProcessor::SerializedMetadata() return new Metadata(msvcMeta); } + void MicrosoftRTTIProcessor::DeserializedMetadata(const Ref<Metadata> &metadata) { std::map<std::string, Ref<Metadata> > msvcMeta = metadata->GetKeyValueStore(); @@ -385,6 +392,7 @@ void MicrosoftRTTIProcessor::DeserializedMetadata(const Ref<Metadata> &metadata) } } + std::optional<std::string> MicrosoftRTTIProcessor::DemangleName(const std::string &mangledName) { QualifiedName demangledName = {}; @@ -604,9 +612,7 @@ std::optional<VirtualFunctionTableInfo> MicrosoftRTTIProcessor::ProcessVFT(uint6 } -MicrosoftRTTIProcessor::MicrosoftRTTIProcessor(const Ref<BinaryView> &view, bool useMangled, bool checkRData, - bool vftSweep) : m_view( - view) +MicrosoftRTTIProcessor::MicrosoftRTTIProcessor(const Ref<BinaryView> &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<uint64_t, uint64_t> vftMap = {}; |
