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/GuidRenderer.cpp | 52 -------------------------- 1 file changed, 52 deletions(-) delete mode 100644 platform/efi/efi_resolver/src/GuidRenderer.cpp (limited to 'platform/efi/efi_resolver/src/GuidRenderer.cpp') diff --git a/platform/efi/efi_resolver/src/GuidRenderer.cpp b/platform/efi/efi_resolver/src/GuidRenderer.cpp deleted file mode 100644 index 2a220edc..00000000 --- a/platform/efi/efi_resolver/src/GuidRenderer.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "GuidRenderer.h" - -bool isType(const vector>& context, const string& name) -{ - if (context.empty()) - return false; - - auto [deepestType, size] = context.back(); - if (!deepestType->IsNamedTypeRefer()) - return false; - - return deepestType->GetTypeName().GetString() == name; -} - -bool EfiGuidRenderer::IsValidForData(BinaryView* bv, uint64_t address, Type* type, vector>& context) -{ - return isType(context, "EFI_GUID"); -} - -static string formatGuid(uint32_t data1, uint16_t data2, uint16_t data3, uint64_t data4) -{ - std::ostringstream oss; - oss << std::hex << std::uppercase << std::setfill('0') << std::setw(8) << data1 << "-" << std::setw(4) << data2 - << "-" << std::setw(4) << data3 << "-" << std::setw(16) << data4; - return oss.str(); -} - -vector EfiGuidRenderer::GetLinesForData( - BinaryView* bv, uint64_t address, Type*, const vector& prefix, size_t width, - vector>& context, const std::string& language) -{ - BinaryReader reader(bv); - reader.Seek(address); - auto data1 = reader.Read32(); - auto data2 = reader.Read16(); - auto data3 = reader.Read16(); - auto data4 = reader.ReadBE64(); - string guidStr = formatGuid(data1, data2, data3, data4); - - DisassemblyTextLine line; - line.addr = address; - line.tokens = prefix; - line.tokens.emplace_back(TextToken, "[EFI_GUID(\""); - line.tokens.emplace_back(StringToken, guidStr); - line.tokens.emplace_back(TextToken, "\")]"); - return {line}; -} - -void EfiGuidRenderer::Register() -{ - DataRendererContainer::RegisterTypeSpecificDataRenderer(new EfiGuidRenderer()); -} -- cgit v1.3.1