Add MachoManiac

This commit is contained in:
Sam Carlton 2021-01-30 16:50:33 -06:00
parent 04c0b7aeae
commit 50b1c46678
34 changed files with 5269 additions and 0 deletions

View file

@ -0,0 +1,73 @@
var FILE_TYPES = [];
var FILE_FLAGS = [];
/*
@Class FILE_TYPE
@Description
File Type is the class for identifying what MACH-O file is being dealed with.
*/
let FILE_TYPE = {
MH_OBJECT: 0x1, /* relocatable object file */
MH_EXECUTE: 0x2, /* demand paged executable file */
MH_FVMLIB: 0x3, /* fixed VM shared library file */
MH_CORE: 0x4, /* core file */
MH_PRELOAD: 0x5, /* preloaded executable file */
MH_DYLIB: 0x6, /* dynamicly bound shared library file*/
MH_DYLINKER: 0x7, /* dynamic link editor */
MH_BUNDLE: 0x8, /* dynamicly bound bundle file */
MH_DYLIB_STUB: 0x9,
MH_DSYM: 0xa,
MH_KEXT_BUNDLE: 0xb,
DESCRIPTION: function(search) {
let result = FILE_TYPES[search];
return (result != undefined) ? result : search;
},
toString: function() {
return JSON.stringify(this);
},
debugdescription: ""
};
FILE_TYPES[FILE_TYPE.MH_OBJECT] = 'Relocatable Object File';
FILE_TYPES[FILE_TYPE.MH_EXECUTE] = 'Demand Paged Executable File';
FILE_TYPES[FILE_TYPE.MH_FVMLIB] = 'Fixed Virtual Memory Shared Library File';
FILE_TYPES[FILE_TYPE.MH_CORE] = 'Core File';
FILE_TYPES[FILE_TYPE.MH_PRELOAD] = 'Preloaded Executable File';
FILE_TYPES[FILE_TYPE.MH_DYLIB] = 'Dynamically Bound Shared Library File';
FILE_TYPES[FILE_TYPE.MH_DYLINKER] = 'Dynamic Link Editor';
FILE_TYPES[FILE_TYPE.MH_BUNDLE] = 'Dynamically Bound Bundle File';
FILE_TYPES[FILE_TYPE.MH_DYLIB_STUB] = 'Dynamic Library Predefined Symbol';
FILE_TYPES[FILE_TYPE.MH_DSYM] = 'Dynamic Symbol';
FILE_TYPES[FILE_TYPE.MH_KEXT_BUNDLE] = 'Kernel Extension Bundle';
let FILE_FLAG = {
MH_NOUNDEFS: 0x1, /* the object file has no undefined references, can be executed */
MH_INCRLINK: 0x2, /* the object file is the output of an incremental link against a base file and can't be link edited again */
MH_DYLDLINK: 0x4, /* the object file is input for the dynamic linker and can't be staticly link edited again */
MH_BINDATLOAD: 0x8, /* the object file's undefined references are bound by the dynamic linker when loaded. */
MH_PREBOUND: 0x10, /* the file has it's dynamic undefined references prebound. */
DESCRIPTION: function(search) {
let result = FILE_FLAGS[search];
return (result != undefined) ? result : search;
},
toString: function() {
return JSON.stringify(this);
}
};
FILE_FLAGS[FILE_FLAG.MH_NOUNDEFS] = 'The object file has no undefined references and is executable.';
FILE_FLAGS[FILE_FLAG.MH_INCRLINK] = 'The object file is the output of an incremental link against a base file and can not be link edited again.';
FILE_FLAGS[FILE_FLAG.MH_DYLDLINK] = 'The object file is the input for the dynamic linker and can not be staticly link edited again.';
FILE_FLAGS[FILE_FLAG.MH_BINDATLOAD] = 'The object file\'s undefined references are bound by the dynamic linker when loaded.';
FILE_FLAGS[FILE_FLAG.MH_PREBOUND] = 'The file has it\'s dynamic undefined references prebound.';
export { FILE_TYPES, FILE_FLAGS, FILE_TYPE, FILE_FLAG }