diff options
| author | Brandon Miller <brandon@vector35.com> | 2025-05-08 15:08:10 -0400 |
|---|---|---|
| committer | Brandon Miller <brandon@vector35.com> | 2025-05-08 15:08:10 -0400 |
| commit | 5147249a644f611a801aada7645b7a993fc8e314 (patch) | |
| tree | 3a18e50df5ae9edcf31f3545a7f27774021c76a1 /platform/efi/efi_resolver/src/GuidRenderer.cpp | |
| parent | f7e831ab40a5031cec9186096a90d94735080ed7 (diff) | |
Implement EFI resolver as a module workflow
Diffstat (limited to 'platform/efi/efi_resolver/src/GuidRenderer.cpp')
| -rw-r--r-- | platform/efi/efi_resolver/src/GuidRenderer.cpp | 52 |
1 files changed, 0 insertions, 52 deletions
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<pair<Type*, size_t>>& 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<pair<Type*, size_t>>& 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<DisassemblyTextLine> EfiGuidRenderer::GetLinesForData( - BinaryView* bv, uint64_t address, Type*, const vector<InstructionTextToken>& prefix, size_t width, - vector<pair<Type*, size_t>>& 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()); -} |
