| 33 | |
| 34 | |
| 35 | void VFTAnalysis(const Ref<AnalysisContext>& analysisContext) |
| 36 | { |
| 37 | auto view = analysisContext->GetBinaryView(); |
| 38 | if (!MetadataExists(view)) |
| 39 | return; |
| 40 | auto microsoftProcessor = RTTI::Microsoft::MicrosoftRTTIProcessor(view); |
| 41 | microsoftProcessor.ProcessVFT(); |
| 42 | // TODO: We have to store the data for the second processor to pick up the info. |
| 43 | view->StoreMetadata(VIEW_METADATA_RTTI, microsoftProcessor.SerializedMetadata(), true); |
| 44 | auto itaniumProcessor = RTTI::Itanium::ItaniumRTTIProcessor(view); |
| 45 | itaniumProcessor.ProcessVFT(); |
| 46 | view->StoreMetadata(VIEW_METADATA_RTTI, itaniumProcessor.SerializedMetadata(), true); |
| 47 | } |
| 48 | |
| 49 | |
| 50 | extern "C" { |
nothing calls this directly
no test coverage detected