| 21 | static MachoViewType* g_machoViewType = nullptr; |
| 22 | |
| 23 | static string CommandToString(uint32_t lcCommand) |
| 24 | { |
| 25 | switch(lcCommand) |
| 26 | { |
| 27 | case LC_REQ_DYLD: return "LC_REQ_DYLD"; |
| 28 | case LC_SEGMENT: return "LC_SEGMENT"; |
| 29 | case LC_SYMTAB: return "LC_SYMTAB"; |
| 30 | case LC_SYMSEG: return "LC_SYMSEG"; |
| 31 | case LC_THREAD: return "LC_THREAD"; |
| 32 | case LC_UNIXTHREAD: return "LC_UNIXTHREAD"; |
| 33 | case LC_LOADFVMLIB: return "LC_LOADFVMLIB"; |
| 34 | case LC_IDFVMLIB: return "LC_IDFVMLIB"; |
| 35 | case LC_IDENT: return "LC_IDENT"; |
| 36 | case LC_FVMFILE: return "LC_FVMFILE"; |
| 37 | case LC_PREPAGE: return "LC_PREPAGE"; |
| 38 | case LC_DYSYMTAB: return "LC_DYSYMTAB"; |
| 39 | case LC_LOAD_DYLIB: return "LC_LOAD_DYLIB"; |
| 40 | case LC_ID_DYLIB: return "LC_ID_DYLIB"; |
| 41 | case LC_LOAD_DYLINKER: return "LC_LOAD_DYLINKER"; |
| 42 | case LC_ID_DYLINKER: return "LC_ID_DYLINKER"; |
| 43 | case LC_PREBOUND_DYLIB: return "LC_PREBOUND_DYLIB"; |
| 44 | case LC_ROUTINES: return "LC_ROUTINES"; |
| 45 | case LC_SUB_FRAMEWORK: return "LC_SUB_FRAMEWORK"; |
| 46 | case LC_SUB_UMBRELLA: return "LC_SUB_UMBRELLA"; |
| 47 | case LC_SUB_CLIENT: return "LC_SUB_CLIENT"; |
| 48 | case LC_SUB_LIBRARY: return "LC_SUB_LIBRARY"; |
| 49 | case LC_TWOLEVEL_HINTS: return "LC_TWOLEVEL_HINTS"; |
| 50 | case LC_PREBIND_CKSUM: return "LC_PREBIND_CKSUM"; |
| 51 | case LC_LOAD_WEAK_DYLIB: return "LC_LOAD_WEAK_DYLIB"; |
| 52 | case LC_SEGMENT_64: return "LC_SEGMENT_64"; |
| 53 | case LC_ROUTINES_64: return "LC_ROUTINES_64"; |
| 54 | case LC_UUID: return "LC_UUID"; |
| 55 | case LC_RPATH: return "LC_RPATH"; |
| 56 | case LC_CODE_SIGNATURE: return "LC_CODE_SIGNATURE"; |
| 57 | case LC_SEGMENT_SPLIT_INFO: return "LC_SEGMENT_SPLIT_INFO"; |
| 58 | case LC_REEXPORT_DYLIB: return "LC_REEXPORT_DYLIB"; |
| 59 | case LC_LAZY_LOAD_DYLIB: return "LC_LAZY_LOAD_DYLIB"; |
| 60 | case LC_ENCRYPTION_INFO: return "LC_ENCRYPTION_INFO"; |
| 61 | case LC_DYLD_INFO: return "LC_DYLD_INFO"; |
| 62 | case LC_DYLD_INFO_ONLY: return "LC_DYLD_INFO_ONLY"; |
| 63 | case LC_LOAD_UPWARD_DYLIB: return "LC_LOAD_UPWARD_DYLIB"; |
| 64 | case LC_VERSION_MIN_MACOSX: return "LC_VERSION_MIN_MACOSX"; |
| 65 | case LC_VERSION_MIN_IPHONEOS: return "LC_VERSION_MIN_IPHONEOS"; |
| 66 | case LC_FUNCTION_STARTS: return "LC_FUNCTION_STARTS"; |
| 67 | case LC_DYLD_ENVIRONMENT: return "LC_DYLD_ENVIRONMENT"; |
| 68 | case LC_MAIN: return "LC_MAIN"; |
| 69 | case LC_DATA_IN_CODE: return "LC_DATA_IN_CODE"; |
| 70 | case LC_SOURCE_VERSION: return "LC_SOURCE_VERSION"; |
| 71 | case LC_DYLIB_CODE_SIGN_DRS: return "LC_DYLIB_CODE_SIGN_DRS"; |
| 72 | case _LC_ENCRYPTION_INFO_64: return "LC_ENCRYPTION_INFO_64"; |
| 73 | case _LC_LINKER_OPTION: return "LC_LINKER_OPTION"; |
| 74 | case _LC_LINKER_OPTIMIZATION_HINT: return "LC_LINKER_OPTIMIZATION_HINT"; |
| 75 | case _LC_VERSION_MIN_TVOS: return "LC_VERSION_MIN_TVOS"; |
| 76 | case LC_VERSION_MIN_WATCHOS: return "LC_VERSION_MIN_WATCHOS"; |
| 77 | case LC_NOTE: return "LC_NOTE"; |
| 78 | case LC_BUILD_VERSION: return "LC_BUILD_VERSION"; |
| 79 | case LC_DYLD_EXPORTS_TRIE: return "LC_DYLD_EXPORTS_TRIE"; |
| 80 | case LC_DYLD_CHAINED_FIXUPS: return "LC_DYLD_CHAINED_FIXUPS"; |