mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-18 06:44:46 -07:00
Add MachoManiac
This commit is contained in:
parent
04c0b7aeae
commit
50b1c46678
34 changed files with 5269 additions and 0 deletions
133
helpers/macho/macho.loadcommand.js
Normal file
133
helpers/macho/macho.loadcommand.js
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
//Global Constants
|
||||
var LOAD_COMMAND_TYPES = [];
|
||||
|
||||
/*
|
||||
@Class LoadCommand
|
||||
|
||||
@Description
|
||||
*/
|
||||
let LOAD_COMMAND_TYPE = {
|
||||
LC_UNKNOWN: 0,
|
||||
LC_SEGMENT: 1,
|
||||
LC_SYMTAB: 2, //Symbol table
|
||||
LC_SYMSEG: 3, //Segment
|
||||
LC_THREAD: 4,
|
||||
LC_UNIXTHREAD: 5,
|
||||
LC_LOADFVMLIB: 6, /* load a specified fixed VM shared library */
|
||||
LC_IDFVMLIB: 7, /* fixed VM shared library identification */
|
||||
LC_IDENT: 8, /* object identification info (obsolete) */
|
||||
LC_FVMFILE: 9, /* fixed VM file inclusion (internal use) */
|
||||
LC_PREPAGE: 10, /* prepage command (internal use) */
|
||||
LC_DYSYMTAB: 11, /* dynamic link-edit symbol table info */
|
||||
LC_LOAD_DYLIB: 12, /* load a dynamicly linked shared library */
|
||||
LC_ID_DYLIB: 13, /* dynamicly linked shared lib identification */
|
||||
LC_LOAD_DYLINKER: 14, /* load a dynamic linker */
|
||||
LC_ID_DYLINKER: 15,
|
||||
LC_PREBOUND_DYLIB: 16, /* modules prebound for a dynamicly */
|
||||
LC_ROUTINES: 17,
|
||||
LC_SUB_FRAMEWORK: 18,
|
||||
LC_SUB_UMBRELLA: 19,
|
||||
LC_SUB_CLIENT: 20,
|
||||
LC_SUB_LIBRARY: 21,
|
||||
LC_TWOLEVEL_HINTS: 22,
|
||||
LC_PREBIND_CKSUM: 23,
|
||||
LC_SEGMENT_64: 25,
|
||||
LC_ROUTINES_64: 26,
|
||||
LC_UUID: 27,
|
||||
LC_CODE_SIGNATURE: 29,
|
||||
LC_SEGMENT_SPLIT_INFO: 30,
|
||||
LC_LAZY_LOAD_DYLIB: 32,
|
||||
LC_ENCRYPTION_INFO: 33,
|
||||
LC_DYLD_INFO: 34,
|
||||
LC_VERSION_MIN_MACOSX: 36,
|
||||
LC_VERSION_MIN_IPHONEOS: 37,
|
||||
LC_FUNCTION_STARTS: 38,
|
||||
LC_DYLD_ENVIRONMENT: 39,
|
||||
LC_DATA_IN_CODE: 41,
|
||||
LC_SOURCE_VERSION: 42,
|
||||
LC_DYLIB_CODE_SIGN_DRS: 43,
|
||||
LC_ENCRYPTION_INFO_64: 44,
|
||||
LC_LINKER_OPTION: 45,
|
||||
LC_LINKER_OPTIMIZATION_HINT: 46,
|
||||
LC_VERSION_MIN_TVOS: 47,
|
||||
LC_VERSION_MIN_WATCHOS: 48,
|
||||
LC_NOTE: 49,
|
||||
LC_BUILD_VERSION: 50,
|
||||
LC_LOAD_WEAK_DYLIB: 2147483672,
|
||||
LC_RPATH: 2147483676,
|
||||
LC_REEXPORT_DYLIB: 2147483679,
|
||||
LC_DYLD_INFO_ONLY: 2147483682,
|
||||
LC_LOAD_UPWARD_DYLIB: 2147483683,
|
||||
LC_MAIN: 2147483688,
|
||||
|
||||
DESCRIPTION: function(search) {
|
||||
let result = LOAD_COMMAND_TYPES[search];
|
||||
return (result != undefined) ? result : search;
|
||||
},
|
||||
|
||||
toString: function() {
|
||||
return JSON.stringify(this);
|
||||
}
|
||||
};
|
||||
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SEGMENT] = '32-bits Segment command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SYMTAB] = 'Symbol table command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SYMSEG] = 'Symbol segment command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_THREAD] = 'Thread command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_UNIXTHREAD] = 'UNIX Thread command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LOADFVMLIB] = 'Fixed Virtual Memory Library Load command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_IDFVMLIB] = 'Fixed Virtual Memory Library identification information command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_IDENT] = 'Object identification information command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_FVMFILE] = 'Fixed VM File inclusion commmand';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_PREPAGE] = 'Prepage command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_DYSYMTAB] = 'Dynamic Link-Edit Symbol Table information command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LOAD_DYLIB] = 'Dynamically linked shared library identification command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_ID_DYLIB] = 'Dynamic Library Identifier';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LOAD_DYLINKER] = 'Dynamic Linker Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_ID_DYLINKER] = 'Dynamic Linker Identifier';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_PREBOUND_DYLIB] = 'Prebound Dynamic Library Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_ROUTINES] = 'Routines Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SUB_FRAMEWORK] = 'Sub Framework Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SUB_UMBRELLA] = 'Sub Umbrella Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SUB_CLIENT] = 'Sub Client Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SUB_LIBRARY] = 'Sub Library Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_TWOLEVEL_HINTS] = 'TwoLevel Hints Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_PREBIND_CKSUM] = 'Prebind Checksum Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SEGMENT_64] = '64-bits Segment Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_ROUTINES_64] = '64-bits Routines Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_UUID] = 'UUID Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_CODE_SIGNATURE] = 'Code Signature';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SEGMENT_SPLIT_INFO] = 'Segment Split Information Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LAZY_LOAD_DYLIB] = 'Lazy Dynamic Library Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_ENCRYPTION_INFO] = '32-bits encryption Information';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_DYLD_INFO] = 'Dynamic Loader Information Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_VERSION_MIN_MACOSX] = 'Minimum Version Requirement Command for OSX';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_VERSION_MIN_IPHONEOS] = 'Minimum Version Requirement Command for iPhone';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_FUNCTION_STARTS] = 'Function Starts Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_DYLD_ENVIRONMENT] = 'Dynamic Loader Environment Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_DATA_IN_CODE] = 'Data In Code Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_SOURCE_VERSION] = 'Source Version Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_DYLIB_CODE_SIGN_DRS] = 'Dynamic Library Code Sign Directories Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_ENCRYPTION_INFO_64] = '64-bits Encryption Information';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LINKER_OPTION] = 'Linker Option Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LINKER_OPTIMIZATION_HINT] = 'Linker Optimization Hint';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_VERSION_MIN_TVOS] = 'Minimum Version Requirement Command for tvOS';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_VERSION_MIN_WATCHOS] = 'Minimum Version Requirement Command for watchOS';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_NOTE] = 'Additional Note';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_BUILD_VERSION] = 'Build Version';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LOAD_WEAK_DYLIB] = 'Weak Dynamic Library Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_RPATH] = 'Executable Path';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_REEXPORT_DYLIB] = 'Re-Exported Dynamic Library Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_DYLD_INFO_ONLY] = 'Dynamic Library Loader Information Only';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_LOAD_UPWARD_DYLIB] = 'Upward Dynamic Library Load Command';
|
||||
LOAD_COMMAND_TYPES[LOAD_COMMAND_TYPE.LC_MAIN] = 'Main Entrypoint';
|
||||
|
||||
var LoadCommand = function LoadCommand(type, data, size, fileoff) {
|
||||
this.cmd = type || 0;
|
||||
this.cmdsize = size || 0;
|
||||
this.data = data || new Uint8Array();
|
||||
this.fileoff = fileoff || 0;
|
||||
};
|
||||
|
||||
|
||||
export { LOAD_COMMAND_TYPE, LOAD_COMMAND_TYPES, LoadCommand }
|
||||
Loading…
Add table
Add a link
Reference in a new issue