7 #ifndef RETDEC_FILEFORMAT_FILE_FORMAT_MACHO_MACHO_FORMAT_H
8 #define RETDEC_FILEFORMAT_FILE_FORMAT_MACHO_MACHO_FORMAT_H
12 #include <llvm/Object/MachO.h>
13 #include <llvm/Object/MachOUniversal.h>
43 llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
fileBuffer;
48 bool chooseArchitecture(
const llvm::object::MachOUniversalBinary::object_iterator &itr);
67 template<
typename T>
void loadSection(
const T §ion);
69 void segmentCommand(
const llvm::object::MachOObjectFile::LoadCommandInfo &commandInfo);
70 void segment64Command(
const llvm::object::MachOObjectFile::LoadCommandInfo &commandInfo);
75 void entryPointCommand(
const llvm::object::MachOObjectFile::LoadCommandInfo &commandInfo);
81 void loadDylibCommand(
const llvm::object::MachOObjectFile::LoadCommandInfo &commandInfo);
88 void dyldInfoCommand(
const llvm::object::MachOObjectFile::LoadCommandInfo &commandInfo);
102 unsigned long long get32Bit(
const char *ptr)
const;
103 unsigned long long get64Bit(
const char *ptr)
const;
112 std::unique_ptr<llvm::object::MachOObjectFile>
file;
113 std::unique_ptr<llvm::object::MachOUniversalBinary>
fatFile;
131 virtual bool isDll()
const override;
133 virtual bool getMachineCode(
unsigned long long &result)
const override;
134 virtual bool getAbiVersion(
unsigned long long &result)
const override;
136 virtual bool getEpAddress(
unsigned long long &result)
const override;
137 virtual bool getEpOffset(
unsigned long long &epOffset)
const override;
153 bool getTargetOs(std::string &name, std::string &version)
const;
154 bool getEncryptionInfo(
unsigned long &off,
unsigned long &size,
unsigned long &
id);
Endianness
Definition: byte_value_storage.h:21
Definition: archive_wrapper.h:19