From 5147249a644f611a801aada7645b7a993fc8e314 Mon Sep 17 00:00:00 2001 From: Brandon Miller Date: Thu, 8 May 2025 15:08:10 -0400 Subject: Implement EFI resolver as a module workflow --- platform/efi/efi_resolver/src/Plugin.cpp | 65 -------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 platform/efi/efi_resolver/src/Plugin.cpp (limited to 'platform/efi/efi_resolver/src/Plugin.cpp') diff --git a/platform/efi/efi_resolver/src/Plugin.cpp b/platform/efi/efi_resolver/src/Plugin.cpp deleted file mode 100644 index b562975c..00000000 --- a/platform/efi/efi_resolver/src/Plugin.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "DxeResolver.h" -#include "PeiResolver.h" -#include "binaryninjaapi.h" -#include - -using namespace BinaryNinja; - -extern "C" -{ -BN_DECLARE_CORE_ABI_VERSION - -BINARYNINJAPLUGIN void CorePluginDependencies() -{ - BinaryNinja::AddOptionalPluginDependency("arch_x86"); - BinaryNinja::AddOptionalPluginDependency("arch_armv7"); - BinaryNinja::AddOptionalPluginDependency("arch_arm64"); - BinaryNinja::AddOptionalPluginDependency("platform_efi"); -} - -static Ref efiBackgroundTask = nullptr; - -void Run(Ref view) -{ - efiBackgroundTask = new BackgroundTask("Loading EFI protocol mappings!", true); - thread resolverThread([view]() { - LogInfo("Entering new thread"); - - LogInfo("Identifying module type"); - EFIModuleType moduleType = identifyModuleType(view); - -#ifndef DEBUG - auto undo = view->BeginUndoActions(); -#endif - if (moduleType == PEI) - { - efiBackgroundTask->SetProgressText("Resolving PEIM..."); - auto resolver = PeiResolver(view, efiBackgroundTask); - resolver.resolvePei(); - } - else if (moduleType == DXE) - { - efiBackgroundTask->SetProgressText("Resolving DXE protocols..."); - auto resolver = DxeResolver(view, efiBackgroundTask); - resolver.resolveDxe(); - efiBackgroundTask->SetProgressText("Resolving MM related protocols..."); - resolver.resolveSmm(); - } - -#ifndef DEBUG - view->CommitUndoActions(undo); -#endif - efiBackgroundTask->Finish(); - }); - resolverThread.detach(); -} - -BINARYNINJAPLUGIN bool CorePluginInit() -{ - EfiGuidRenderer::Register(); - - PluginCommand::Register("EFI Resolver\\Resolve EFI Types And Protocols", "Resolve EFI Protocols", &Run); - - return true; -} -} -- cgit v1.3.1