diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2024-03-06 19:20:34 -0500 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2024-03-06 19:20:34 -0500 |
| commit | 828fff839f4e4de3e9582405dfec567531000ebc (patch) | |
| tree | ee0db0607edb0c76c653078672201c85e8a96d19 /view/macho/universalview.h | |
| parent | 47894a1ce20090849ad304c68e6c0b889665eda3 (diff) | |
Move view modules into the API repo
Diffstat (limited to 'view/macho/universalview.h')
| -rw-r--r-- | view/macho/universalview.h | 40 |
1 files changed, 40 insertions, 0 deletions
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 <exception> +#include <vector> +#include <string.h> + +#include "binaryninjaapi.h" +#include "fatmachoview.h" +#include "machoview.h" + + +namespace BinaryNinja +{ + void InitUniversalViewType(); + + class UniversalViewType: public BinaryViewType + { + public: + static const std::map<std::pair<cpu_type_t, cpu_subtype_t>, std::string>& GetArchitectures(); + static std::string ArchitectureToString(cpu_type_t cpuType, cpu_subtype_t cpuSubType, bool& is64Bit); + + UniversalViewType(): BinaryViewType("Universal", "Universal") { } + virtual Ref<BinaryView> Create(BinaryView* data) override; + virtual bool IsTypeValidForData(BinaryView* data) override; + virtual bool ParseHeaders(BinaryView* data, FatHeader& fatHeader, std::vector<FatArch64>& fatArchEntries, bool& isFat64, std::string& errorMsg); + virtual Ref<Settings> 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; }; + }; +} |
