From 828fff839f4e4de3e9582405dfec567531000ebc Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Wed, 6 Mar 2024 19:20:34 -0500 Subject: Move view modules into the API repo --- view/macho/universalview.h | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 view/macho/universalview.h (limited to 'view/macho/universalview.h') diff --git a/view/macho/universalview.h b/view/macho/universalview.h new file mode 100644 index 00000000..aaf483cc --- /dev/null +++ b/view/macho/universalview.h @@ -0,0 +1,40 @@ +#pragma once + +#include +#include +#include + +#include "binaryninjaapi.h" +#include "fatmachoview.h" +#include "machoview.h" + + +namespace BinaryNinja +{ + void InitUniversalViewType(); + + class UniversalViewType: public BinaryViewType + { + public: + static const std::map, std::string>& GetArchitectures(); + static std::string ArchitectureToString(cpu_type_t cpuType, cpu_subtype_t cpuSubType, bool& is64Bit); + + UniversalViewType(): BinaryViewType("Universal", "Universal") { } + virtual Ref Create(BinaryView* data) override; + virtual bool IsTypeValidForData(BinaryView* data) override; + virtual bool ParseHeaders(BinaryView* data, FatHeader& fatHeader, std::vector& fatArchEntries, bool& isFat64, std::string& errorMsg); + virtual Ref GetLoadSettingsForData(BinaryView* data) override; + }; + + class UniversalView: public BinaryView + { + public: + UniversalView(BinaryView* data, bool parseOnly = false); + virtual ~UniversalView(); + + virtual bool Init() override; + virtual BNEndianness PerformGetDefaultEndianness() const override { return BigEndian; } + virtual bool PerformIsExecutable() const override { return false; } + virtual bool PerformIsRelocatable() const override { return false; }; + }; +} -- cgit v1.3.1