summaryrefslogtreecommitdiff
path: root/platform/efi/efi_resolver/include/DxeResolver.h
diff options
context:
space:
mode:
authorZichuan Li <34680029+river-li@users.noreply.github.com>2024-08-15 11:53:05 -0400
committerBrandon Miller <brandon@vector35.com>2025-05-08 07:23:08 -0400
commit7f08117cfeb48a8f48d08e14cb498ee028efcef2 (patch)
tree345eab220c00cfa098e94fa261dce092fc8d5182 /platform/efi/efi_resolver/include/DxeResolver.h
parent64de95854f9ad4da90b9cf2ee69a80f5dddd7a18 (diff)
Move EFI Resolver to API
Support all existing features in EFI Resolver, 1. Doesn't support running on existing BNDBs (though we tried to support this in python plugins, it doesn't work well) 2. Perform analysis on MLIL rather than HLIL, previous pattern matching on HLIL constains many false negatives
Diffstat (limited to 'platform/efi/efi_resolver/include/DxeResolver.h')
-rw-r--r--platform/efi/efi_resolver/include/DxeResolver.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/platform/efi/efi_resolver/include/DxeResolver.h b/platform/efi/efi_resolver/include/DxeResolver.h
new file mode 100644
index 00000000..3515b94a
--- /dev/null
+++ b/platform/efi/efi_resolver/include/DxeResolver.h
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "Resolver.h"
+
+class DxeResolver : Resolver {
+ bool resolveBootServices();
+ bool resolveRuntimeServices();
+
+ bool resolveSmmTables(string serviceName, string tableName);
+ bool resolveSmmServices();
+ bool resolveSmiHandlers();
+
+public:
+ /*!
+ resolve BootServices and RuntimeServices, define protocol types that loaded by BootServices
+ */
+ bool resolveDxe();
+
+ /*!
+ Define MMST/SMMST and resolve SMM related protocols
+ */
+ bool resolveSmm();
+
+ DxeResolver(Ref<BinaryView> view, Ref<BackgroundTask> task);
+}; \ No newline at end of file