mirror of
https://github.com/upx/upx
synced 2025-09-28 19:06:07 +08:00
Fix namespace typedefs for Mach-o structs [upx_uint32_t ==> Word]
modified: p_mach.cpp modified: p_mach.h
This commit is contained in:
parent
923a9d3f9b
commit
82d9bb8f51
|
@ -535,15 +535,15 @@ PackMachBase<T>::compare_segment_command(void const *const aa, void const *const
|
|||
template <class T>
|
||||
void PackMachBase<T>::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
||||
{
|
||||
N_Mach::Mach_main_command cmdMAIN;
|
||||
Mach_main_command cmdMAIN;
|
||||
// offset of p_info in compressed file
|
||||
overlay_offset = sizeof(mhdro) + sizeof(segZERO)
|
||||
+ sizeof(segXHDR) + sizeof(secXHDR)
|
||||
+ sizeof(segTEXT) + sizeof(secTEXT)
|
||||
+ sizeof(cmdUUID) + sizeof(cmdSRCVER) + sizeof(cmdVERMIN) + sizeof(cmdMAIN)
|
||||
+ sizeof(N_Mach::Mach_dyld_info_only_command) + sizeof(Mach_dysymtab_command)
|
||||
+ sizeof(N_Mach::Mach_load_dylinker_command) + sizeof(N_Mach::Mach_load_dylib_command)
|
||||
+ sizeof(N_Mach::Mach_function_starts_command) + sizeof(N_Mach::Mach_data_in_code_command)
|
||||
+ sizeof(Mach_dyld_info_only_command) + sizeof(Mach_dysymtab_command)
|
||||
+ sizeof(Mach_load_dylinker_command) + sizeof(Mach_load_dylib_command)
|
||||
+ sizeof(Mach_function_starts_command) + sizeof(Mach_data_in_code_command)
|
||||
+ sizeof(linfo);
|
||||
if (my_filetype==Mach_header::MH_EXECUTE) {
|
||||
overlay_offset = PAGE_SIZE; // FIXME
|
||||
|
@ -669,7 +669,7 @@ void PackMachBase<T>::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
|||
}
|
||||
} break;
|
||||
case Mach_segment_command::LC_DYLD_INFO_ONLY: {
|
||||
N_Mach::Mach_dyld_info_only_command *p = (N_Mach::Mach_dyld_info_only_command *)lcp;
|
||||
Mach_dyld_info_only_command *p = (Mach_dyld_info_only_command *)lcp;
|
||||
if (p->rebase_off) p->rebase_off += delta;
|
||||
if (p->bind_off) p->bind_off += delta;
|
||||
if (p->lazy_bind_off) p->lazy_bind_off += delta;
|
||||
|
@ -706,7 +706,7 @@ void PackMachBase<T>::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
|||
skip = 1;
|
||||
} break;
|
||||
case Mach_segment_command::LC_FUNCTION_STARTS: {
|
||||
N_Mach::Mach_function_starts_command *p = (N_Mach::Mach_function_starts_command *)lcp;
|
||||
Mach_function_starts_command *p = (Mach_function_starts_command *)lcp;
|
||||
if (p->dataoff) p->dataoff += delta;
|
||||
skip = 1;
|
||||
} break;
|
||||
|
@ -715,14 +715,14 @@ void PackMachBase<T>::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
|||
// LC_MAIN requires libSystem.B.dylib to provide the environment for main(), and CALLs the entryoff.
|
||||
// LC_UNIXTHREAD does not need libSystem.B.dylib, and JMPs to the .rip with %rsp/argc and argv= 8+%rsp
|
||||
threado_setPC(segTEXT.vmaddr +
|
||||
(((N_Mach::Mach_main_command const *)lcp)->entryoff - segTEXT.fileoff));
|
||||
(((Mach_main_command const *)lcp)->entryoff - segTEXT.fileoff));
|
||||
skip = 1;
|
||||
} break;
|
||||
case Mach_segment_command::LC_LOAD_DYLIB: {
|
||||
skip = 1;
|
||||
} break;
|
||||
case Mach_segment_command::LC_DATA_IN_CODE: {
|
||||
N_Mach::Mach_data_in_code_command *p = (N_Mach::Mach_data_in_code_command *)lcp;
|
||||
Mach_data_in_code_command *p = (Mach_data_in_code_command *)lcp;
|
||||
if (p->dataoff) p->dataoff += delta;
|
||||
skip = 1;
|
||||
} break;
|
||||
|
|
252
src/p_mach.h
252
src/p_mach.h
|
@ -47,12 +47,6 @@ __packed_struct(Mach_fat_arch)
|
|||
BE32 align; /* shift count; log base 2 */
|
||||
__packed_struct_end()
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd;
|
||||
upx_uint32_t cmdsize;
|
||||
upx_uint32_t data[2]; // because cmdsize >= 16
|
||||
} Mach_command; // generic prefix
|
||||
|
||||
/*************************************************************************
|
||||
// Mach Mach Object executable; all structures are target-endian
|
||||
// 'otool' is the Mach analog of 'readelf' (convert executable file to ASCII).
|
||||
|
@ -102,6 +96,17 @@ __packed_struct(Mach_header64)
|
|||
#include "p_mach_enum.h"
|
||||
__packed_struct_end()
|
||||
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_command) // generic prefix
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
Word cmd;
|
||||
Word cmdsize;
|
||||
Word data[2]; // because cmdsize >= 16
|
||||
#define WANT_MACH_SEGMENT_ENUM 1
|
||||
#include "p_mach_enum.h"
|
||||
__packed_struct_end();
|
||||
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_segment_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
@ -263,7 +268,6 @@ __packed_struct_end()
|
|||
template <class TMachITypes>
|
||||
__packed_struct(Mach_twolevel_hints_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
typedef typename TMachITypes::Addr Addr;
|
||||
typedef typename TMachITypes::Off Off;
|
||||
|
||||
Word cmd;
|
||||
|
@ -306,73 +310,101 @@ __packed_struct(Mach_thread_command)
|
|||
#include "p_mach_enum.h"
|
||||
__packed_struct_end()
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd; // LC_MAIN; MH_EXECUTE only
|
||||
upx_uint32_t cmdsize; // 24
|
||||
upx_uint64_t entryoff; // file offset of main() [expected in __TEXT]
|
||||
upx_uint64_t stacksize; // non-default initial stack size
|
||||
} Mach_main_command;
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_main_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
typedef typename TMachITypes::Xword Xword;
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd; // LC_SOURCE_VERSION
|
||||
upx_uint32_t cmdsize; // 16
|
||||
upx_uint32_t version;
|
||||
} Mach_source_version_command;
|
||||
Word cmd; // LC_MAIN; MH_EXECUTE only
|
||||
Word cmdsize; // 24
|
||||
Xword entryoff; // file offset of main() [expected in __TEXT]
|
||||
Xword stacksize; // non-default initial stack size
|
||||
__packed_struct_end()
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd; // LC_VERSION_MIN_MACOSX
|
||||
upx_uint32_t cmdsize; // 16
|
||||
upx_uint32_t version; // X.Y.Z ==> xxxx.yy.zz
|
||||
upx_uint32_t sdk; // X.Y.Z ==> xxxx.yy.zz
|
||||
} Mach_version_min_command;
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_source_version_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd; // LC_DYLD_INFO_ONLY
|
||||
upx_uint32_t cmdsize; // 48
|
||||
upx_uint32_t rebase_off;
|
||||
upx_uint32_t rebase_size;
|
||||
upx_uint32_t bind_off;
|
||||
upx_uint32_t bind_size;
|
||||
upx_uint32_t weak_bind_off;
|
||||
upx_uint32_t weak_bind_size;
|
||||
upx_uint32_t lazy_bind_off;
|
||||
upx_uint32_t lazy_bind_size;
|
||||
upx_uint32_t export_off;
|
||||
upx_uint32_t export_size;
|
||||
} Mach_dyld_info_only_command;
|
||||
Word cmd; // LC_SOURCE_VERSION
|
||||
Word cmdsize; // 16
|
||||
Word version;
|
||||
__packed_struct_end()
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd;
|
||||
upx_uint32_t cmdsize;
|
||||
upx_uint32_t name;
|
||||
} Mach_load_dylinker_command;
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_version_min_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t name; /* library's path name */
|
||||
upx_uint32_t timestamp; /* library's build time stamp */
|
||||
upx_uint32_t current_version; /* library's current version number */
|
||||
upx_uint32_t compatibility_version; /* library's compatibility vers number*/
|
||||
} Mach_dylib;
|
||||
Word cmd; // LC_VERSION_MIN_MACOSX
|
||||
Word cmdsize; // 16
|
||||
Word version; // X.Y.Z ==> xxxx.yy.zz
|
||||
Word sdk; // X.Y.Z ==> xxxx.yy.zz
|
||||
__packed_struct_end()
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd;
|
||||
upx_uint32_t cmdsize;
|
||||
Mach_dylib dylib;
|
||||
} Mach_load_dylib_command;
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_dyld_info_only_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd;
|
||||
upx_uint32_t cmdsize;
|
||||
upx_uint32_t dataoff;
|
||||
upx_uint32_t datasize;
|
||||
} Mach_function_starts_command;
|
||||
Word cmd; // LC_DYLD_INFO_ONLY
|
||||
Word cmdsize; // 48
|
||||
Word rebase_off;
|
||||
Word rebase_size;
|
||||
Word bind_off;
|
||||
Word bind_size;
|
||||
Word weak_bind_off;
|
||||
Word weak_bind_size;
|
||||
Word lazy_bind_off;
|
||||
Word lazy_bind_size;
|
||||
Word export_off;
|
||||
Word export_size;
|
||||
__packed_struct_end()
|
||||
|
||||
typedef struct {
|
||||
upx_uint32_t cmd;
|
||||
upx_uint32_t cmdsize;
|
||||
upx_uint32_t dataoff;
|
||||
upx_uint32_t datasize;
|
||||
} Mach_data_in_code_command;
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_load_dylinker_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
Word cmd;
|
||||
Word cmdsize;
|
||||
Word name;
|
||||
__packed_struct_end()
|
||||
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_dylib)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
Word name; /* library's path name */
|
||||
Word timestamp; /* library's build time stamp */
|
||||
Word current_version; /* library's current version number */
|
||||
Word compatibility_version; /* library's compatibility vers number*/
|
||||
__packed_struct_end()
|
||||
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_load_dylib_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
Word cmd;
|
||||
Word cmdsize;
|
||||
Mach_dylib<TMachITypes> dylib;
|
||||
__packed_struct_end()
|
||||
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_function_starts_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
Word cmd;
|
||||
Word cmdsize;
|
||||
Word dataoff;
|
||||
Word datasize;
|
||||
__packed_struct_end()
|
||||
|
||||
template <class TMachITypes>
|
||||
__packed_struct(Mach_data_in_code_command)
|
||||
typedef typename TMachITypes::Word Word;
|
||||
|
||||
Word cmd;
|
||||
Word cmdsize;
|
||||
Word dataoff;
|
||||
Word datasize;
|
||||
__packed_struct_end()
|
||||
|
||||
} // namespace N_Mach
|
||||
|
||||
|
@ -511,6 +543,7 @@ struct MachClass_32
|
|||
|
||||
// Mach types
|
||||
typedef N_Mach::Mach_header<MachITypes> Mach_header;
|
||||
typedef N_Mach::Mach_command<MachITypes> Mach_command;
|
||||
typedef N_Mach::Mach_segment_command<MachITypes> Mach_segment_command;
|
||||
typedef N_Mach::Mach_section_command<MachITypes> Mach_section_command;
|
||||
typedef N_Mach::Mach_symtab_command<MachITypes> Mach_symtab_command;
|
||||
|
@ -520,6 +553,15 @@ struct MachClass_32
|
|||
typedef N_Mach::Mach_twolevel_hints_command<MachITypes> Mach_twolevel_hints_command;
|
||||
typedef N_Mach::Mach_linkedit_data_command<MachITypes> Mach_linkedit_data_command;
|
||||
typedef N_Mach::Mach_uuid_command<MachITypes> Mach_uuid_command;
|
||||
typedef N_Mach::Mach_data_in_code_command<MachITypes> Mach_data_in_code_command;
|
||||
typedef N_Mach::Mach_function_starts_command<MachITypes> Mach_function_starts_command;
|
||||
typedef N_Mach::Mach_load_dylib_command<MachITypes> Mach_load_dylib_command;
|
||||
typedef N_Mach::Mach_dylib<MachITypes> Mach_dylib;
|
||||
typedef N_Mach::Mach_load_dylinker_command<MachITypes> Mach_load_dylinker_command;
|
||||
typedef N_Mach::Mach_dyld_info_only_command<MachITypes> Mach_dyld_info_only_command;
|
||||
typedef N_Mach::Mach_version_min_command<MachITypes> Mach_version_min_command;
|
||||
typedef N_Mach::Mach_source_version_command<MachITypes> Mach_source_version_command;
|
||||
typedef N_Mach::Mach_main_command<MachITypes> Mach_main_command;
|
||||
|
||||
typedef N_Mach32::Mach_ppc_thread_state<MachITypes> Mach_ppc_thread_state;
|
||||
typedef N_Mach32::Mach_i386_thread_state<MachITypes> Mach_i386_thread_state;
|
||||
|
@ -545,6 +587,7 @@ struct MachClass_64
|
|||
|
||||
// Mach types
|
||||
typedef N_Mach::Mach_header64<MachITypes> Mach_header;
|
||||
typedef N_Mach::Mach_command<MachITypes> Mach_command;
|
||||
typedef N_Mach::Mach_segment_command<MachITypes> Mach_segment_command;
|
||||
typedef N_Mach::Mach_section_command_64<MachITypes> Mach_section_command;
|
||||
typedef N_Mach::Mach_symtab_command<MachITypes> Mach_symtab_command;
|
||||
|
@ -554,6 +597,15 @@ struct MachClass_64
|
|||
typedef N_Mach::Mach_twolevel_hints_command<MachITypes> Mach_twolevel_hints_command;
|
||||
typedef N_Mach::Mach_linkedit_data_command<MachITypes> Mach_linkedit_data_command;
|
||||
typedef N_Mach::Mach_uuid_command<MachITypes> Mach_uuid_command;
|
||||
typedef N_Mach::Mach_data_in_code_command<MachITypes> Mach_data_in_code_command;
|
||||
typedef N_Mach::Mach_function_starts_command<MachITypes> Mach_function_starts_command;
|
||||
typedef N_Mach::Mach_load_dylib_command<MachITypes> Mach_load_dylib_command;
|
||||
typedef N_Mach::Mach_dylib<MachITypes> Mach_dylib;
|
||||
typedef N_Mach::Mach_load_dylinker_command<MachITypes> Mach_load_dylinker_command;
|
||||
typedef N_Mach::Mach_dyld_info_only_command<MachITypes> Mach_dyld_info_only_command;
|
||||
typedef N_Mach::Mach_version_min_command<MachITypes> Mach_version_min_command;
|
||||
typedef N_Mach::Mach_source_version_command<MachITypes> Mach_source_version_command;
|
||||
typedef N_Mach::Mach_main_command<MachITypes> Mach_main_command;
|
||||
|
||||
typedef N_Mach64::Mach_ppcle_thread_state64<MachITypes> Mach_ppcle_thread_state64;
|
||||
typedef N_Mach64::Mach_AMD64_thread_state<MachITypes> Mach_AMD64_thread_state;
|
||||
|
@ -584,6 +636,15 @@ typedef MachClass_Host32::Mach_routines_command Mach32_routines_command;
|
|||
typedef MachClass_Host32::Mach_twolevel_hints_command Mach32_twolevel_hints_command;
|
||||
typedef MachClass_Host32::Mach_linkedit_data_command Mach32_linkedit_data_command;
|
||||
typedef MachClass_Host32::Mach_uuid_command Mach32_uuid_command;
|
||||
typedef MachClass_Host32::Mach_main_command Mach32_main_command;
|
||||
typedef MachClass_Host32::Mach_data_in_code_command Mach32_data_in_code_command;
|
||||
typedef MachClass_Host32::Mach_function_starts_command Mach32_function_starts_command;
|
||||
typedef MachClass_Host32::Mach_load_dylib_command Mach32_load_dylib_command;
|
||||
typedef MachClass_Host32::Mach_dylib Mach32_dylib;
|
||||
typedef MachClass_Host32::Mach_load_dylinker_command Mach32_load_dylinker_command;
|
||||
typedef MachClass_Host32::Mach_dyld_info_only_command Mach32_dyld_info_only_command;
|
||||
typedef MachClass_Host32::Mach_version_min_command Mach32_version_min_command;
|
||||
typedef MachClass_Host32::Mach_source_version_command Mach32_source_version_command;
|
||||
|
||||
typedef MachClass_Host64::Mach_segment_command Mach64_segment_command;
|
||||
typedef MachClass_Host64::Mach_section_command Mach64_section_command;
|
||||
|
@ -594,6 +655,15 @@ typedef MachClass_Host64::Mach_routines_command Mach64_routines_command;
|
|||
typedef MachClass_Host64::Mach_twolevel_hints_command Mach64_twolevel_hints_command;
|
||||
typedef MachClass_Host64::Mach_linkedit_data_command Mach64_linkedit_data_command;
|
||||
typedef MachClass_Host64::Mach_uuid_command Mach64_uuid_command;
|
||||
typedef MachClass_Host64::Mach_main_command Mach64_main_command;
|
||||
typedef MachClass_Host64::Mach_data_in_code_command Mach64_data_in_code_command;
|
||||
typedef MachClass_Host64::Mach_function_starts_command Mach64_function_starts_command;
|
||||
typedef MachClass_Host64::Mach_load_dylib_command Mach64_load_dylib_command;
|
||||
typedef MachClass_Host64::Mach_dylib Mach64_dylib;
|
||||
typedef MachClass_Host64::Mach_load_dylinker_command Mach64_load_dylinker_command;
|
||||
typedef MachClass_Host64::Mach_dyld_info_only_command Mach64_dyld_info_only_command;
|
||||
typedef MachClass_Host64::Mach_version_min_command Mach64_version_min_command;
|
||||
typedef MachClass_Host64::Mach_source_version_command Mach64_source_version_command;
|
||||
|
||||
typedef MachClass_BE32::Mach_segment_command MachBE32_segment_command;
|
||||
typedef MachClass_BE32::Mach_section_command MachBE32_section_command;
|
||||
|
@ -604,6 +674,15 @@ typedef MachClass_BE32::Mach_routines_command MachBE32_routines_command;
|
|||
typedef MachClass_BE32::Mach_twolevel_hints_command MachBE32_twolevel_hints_command;
|
||||
typedef MachClass_BE32::Mach_linkedit_data_command MachBE32_linkedit_data_command;
|
||||
typedef MachClass_BE32::Mach_uuid_command MachBE32_uuid_command;
|
||||
typedef MachClass_BE32::Mach_main_command MachBE32_main_command;
|
||||
typedef MachClass_BE32::Mach_data_in_code_command MachBE32_data_in_code_command;
|
||||
typedef MachClass_BE32::Mach_function_starts_command MachBE32_function_starts_command;
|
||||
typedef MachClass_BE32::Mach_load_dylib_command MachBE32_load_dylib_command;
|
||||
typedef MachClass_BE32::Mach_dylib MachBE32_dylib;
|
||||
typedef MachClass_BE32::Mach_load_dylinker_command MachBE32_load_dylinker_command;
|
||||
typedef MachClass_BE32::Mach_dyld_info_only_command MachBE32_dyld_info_only_command;
|
||||
typedef MachClass_BE32::Mach_version_min_command MachBE32_version_min_command;
|
||||
typedef MachClass_BE32::Mach_source_version_command MachBE32_source_version_command;
|
||||
|
||||
typedef MachClass_BE64::Mach_segment_command MachBE64_segment_command;
|
||||
typedef MachClass_BE64::Mach_section_command MachBE64_section_command;
|
||||
|
@ -614,6 +693,15 @@ typedef MachClass_BE64::Mach_routines_command MachBE64_routines_command;
|
|||
typedef MachClass_BE64::Mach_twolevel_hints_command MachBE64_twolevel_hints_command;
|
||||
typedef MachClass_BE64::Mach_linkedit_data_command MachBE64_linkedit_data_command;
|
||||
typedef MachClass_BE64::Mach_uuid_command MachBE64_uuid_command;
|
||||
typedef MachClass_BE64::Mach_main_command MachBE64_main_command;
|
||||
typedef MachClass_BE64::Mach_data_in_code_command MachBE64_data_in_code_command;
|
||||
typedef MachClass_BE64::Mach_function_starts_command MachBE64_function_starts_command;
|
||||
typedef MachClass_BE64::Mach_load_dylib_command MachBE64_load_dylib_command;
|
||||
typedef MachClass_BE64::Mach_dylib MachBE64_dylib;
|
||||
typedef MachClass_BE64::Mach_load_dylinker_command MachBE64_load_dylinker_command;
|
||||
typedef MachClass_BE64::Mach_dyld_info_only_command MachBE64_dyld_info_only_command;
|
||||
typedef MachClass_BE64::Mach_version_min_command MachBE64_version_min_command;
|
||||
typedef MachClass_BE64::Mach_source_version_command MachBE64_source_version_command;
|
||||
|
||||
typedef MachClass_LE32::Mach_segment_command MachLE32_segment_command;
|
||||
typedef MachClass_LE32::Mach_section_command MachLE32_section_command;
|
||||
|
@ -624,6 +712,15 @@ typedef MachClass_LE32::Mach_routines_command MachLE32_routines_command;
|
|||
typedef MachClass_LE32::Mach_twolevel_hints_command MachLE32_twolevel_hints_command;
|
||||
typedef MachClass_LE32::Mach_linkedit_data_command MachLE32_linkedit_data_command;
|
||||
typedef MachClass_LE32::Mach_uuid_command MachLE32_uuid_command;
|
||||
typedef MachClass_LE32::Mach_main_command MachLE32_main_command;
|
||||
typedef MachClass_LE32::Mach_data_in_code_command MachLE32_data_in_code_command;
|
||||
typedef MachClass_LE32::Mach_function_starts_command MachLE32_function_starts_command;
|
||||
typedef MachClass_LE32::Mach_load_dylib_command MachLE32_load_dylib_command;
|
||||
typedef MachClass_LE32::Mach_dylib MachLE32_dylib;
|
||||
typedef MachClass_LE32::Mach_load_dylinker_command MachLE32_load_dylinker_command;
|
||||
typedef MachClass_LE32::Mach_dyld_info_only_command MachLE32_dyld_info_only_command;
|
||||
typedef MachClass_LE32::Mach_version_min_command MachLE32_version_min_command;
|
||||
typedef MachClass_LE32::Mach_source_version_command MachLE32_source_version_command;
|
||||
|
||||
typedef MachClass_LE64::Mach_segment_command MachLE64_segment_command;
|
||||
typedef MachClass_LE64::Mach_section_command MachLE64_section_command;
|
||||
|
@ -634,6 +731,15 @@ typedef MachClass_LE64::Mach_routines_command MachLE64_routines_command;
|
|||
typedef MachClass_LE64::Mach_twolevel_hints_command MachLE64_twolevel_hints_command;
|
||||
typedef MachClass_LE64::Mach_linkedit_data_command MachLE64_linkedit_data_command;
|
||||
typedef MachClass_LE64::Mach_uuid_command MachLE64_uuid_command;
|
||||
typedef MachClass_LE64::Mach_main_command MachLE64_main_command;
|
||||
typedef MachClass_LE64::Mach_data_in_code_command MachLE64_data_in_code_command;
|
||||
typedef MachClass_LE64::Mach_function_starts_command MachLE64_function_starts_command;
|
||||
typedef MachClass_LE64::Mach_load_dylib_command MachLE64_load_dylib_command;
|
||||
typedef MachClass_LE64::Mach_dylib MachLE64_dylib;
|
||||
typedef MachClass_LE64::Mach_load_dylinker_command MachLE64_load_dylinker_command;
|
||||
typedef MachClass_LE64::Mach_dyld_info_only_command MachLE64_dyld_info_only_command;
|
||||
typedef MachClass_LE64::Mach_version_min_command MachLE64_version_min_command;
|
||||
typedef MachClass_LE64::Mach_source_version_command MachLE64_source_version_command;
|
||||
|
||||
typedef MachClass_BE32::Mach_ppc_thread_state Mach_ppc_thread_state;
|
||||
typedef MachClass_LE64::Mach_ppcle_thread_state64 Mach_ppcle_thread_state64;
|
||||
|
@ -659,6 +765,7 @@ protected:
|
|||
typedef typename MachClass::Addr Addr;
|
||||
// Mach types
|
||||
typedef typename MachClass::Mach_header Mach_header;
|
||||
typedef typename MachClass::Mach_command Mach_command;
|
||||
typedef typename MachClass::Mach_segment_command Mach_segment_command;
|
||||
typedef typename MachClass::Mach_section_command Mach_section_command;
|
||||
typedef typename MachClass::Mach_symtab_command Mach_symtab_command;
|
||||
|
@ -668,6 +775,15 @@ protected:
|
|||
typedef typename MachClass::Mach_twolevel_hints_command Mach_twolevel_hints_command;
|
||||
typedef typename MachClass::Mach_linkedit_data_command Mach_linkedit_data_command;
|
||||
typedef typename MachClass::Mach_uuid_command Mach_uuid_command;
|
||||
typedef typename MachClass::Mach_main_command Mach_main_command;
|
||||
typedef typename MachClass::Mach_data_in_code_command Mach_data_in_code_command;
|
||||
typedef typename MachClass::Mach_function_starts_command Mach_function_starts_command;
|
||||
typedef typename MachClass::Mach_load_dylib_command Mach_load_dylib_command;
|
||||
typedef typename MachClass::Mach_dylib Mach_dylib;
|
||||
typedef typename MachClass::Mach_load_dylinker_command Mach_load_dylinker_command;
|
||||
typedef typename MachClass::Mach_dyld_info_only_command Mach_dyld_info_only_command;
|
||||
typedef typename MachClass::Mach_version_min_command Mach_version_min_command;
|
||||
typedef typename MachClass::Mach_source_version_command Mach_source_version_command;
|
||||
|
||||
public:
|
||||
PackMachBase(InputFile *, unsigned cpuid, unsigned filetype,
|
||||
|
@ -742,8 +858,8 @@ protected:
|
|||
Mach_segment_command segLINK;
|
||||
Mach_linkedit_data_command linkitem;
|
||||
Mach_uuid_command cmdUUID; // copied from input, then incremented
|
||||
N_Mach::Mach_source_version_command cmdSRCVER; // copied from input
|
||||
N_Mach::Mach_version_min_command cmdVERMIN; // copied from input
|
||||
Mach_source_version_command cmdSRCVER; // copied from input
|
||||
Mach_version_min_command cmdVERMIN; // copied from input
|
||||
|
||||
__packed_struct(b_info) // 12-byte header before each compressed block
|
||||
TE32 sz_unc; // uncompressed_size
|
||||
|
|
Loading…
Reference in New Issue
Block a user