7 #ifndef UNPACKERTOOL_PLUGINS_UPX_MACHO_MACHO_UPX_STUB_H
8 #define UNPACKERTOOL_PLUGINS_UPX_MACHO_MACHO_UPX_STUB_H
19 namespace unpackertool {
36 static const std::uint64_t MachOHeaderNcmdsOffset = 0x10;
37 static const std::uint64_t MachOHeaderSize = 0x1C;
38 static const std::uint32_t LoadCommandSegment = llvm::MachO::LC_SEGMENT;
39 static const std::uint64_t LoadCommandSegmentFileoffOffset = 0x20;
40 static const std::uint64_t LoadCommandSegmentFilesizeOffset = 0x24;
52 static const std::uint64_t MachOHeaderNcmdsOffset = 0x10;
53 static const std::uint64_t MachOHeaderSize = 0x20;
54 static const std::uint32_t LoadCommandSegment = llvm::MachO::LC_SEGMENT_64;
55 static const std::uint64_t LoadCommandSegmentFileoffOffset = 0x28;
56 static const std::uint64_t LoadCommandSegmentFilesizeOffset = 0x30;
73 std::unique_ptr<Decompressor> decompressor,
const UpxMetadata& metadata);
75 virtual void unpack(
const std::string& outputFile)
override;
76 virtual void cleanup()
override;
78 void setupPackingMethod(std::uint8_t packingMethod);
81 void unpack(std::ifstream& inputFile, std::ofstream& outputFile, std::uint64_t baseInputOffset, std::uint64_t baseOutputOffset);
84 std::uint32_t getFirstBlockOffset(std::ifstream& inputFile)
const;
Bit getters for NRV decompression algorithms.
The class for dynamic buffered data manipulation taking the endianness of the data in account.
Definition: dynamic_buffer.h:36
Declaration of class for buffered data mainpulation.
Definition: unpacking_stub.h:16
Definition: archive_wrapper.h:19
void cleanup(ProgramOptions &po)
Definition: retdec-decompiler.cpp:910
Declaration of abstract UPX stub class that represents the unpacking procedure itself.