This is called decompiling, and IDA, Hopper, and Ghidra all have powerful decompilers bundled with them. These programs are designed to aid and facilitate reverse engineering of compiled software.Īlthough all can "Disassemble", that is, provide assembly code, some can also provide near-perfect C pseudocode from the assembly.
See the dyld_shared_cache page on this wiki for a full list of tools and info.ĭisassemblers are useful when you need an in-depth analysis of a binary. On a static cache, using DyldExtractor is recommended. Requires iOS7 and above.ĭumpdecrypted dyld_shared_cache extraction The following tools can be used to analyze an executable.ĭecrypting App Store Applications FlexDecryptįlexdecrypt is an app/macho decryption tool, notable for not requiring app launch to decrypt executables.Ĭlutch decrypts app executables, plugins and frameworks. Remember that the resulting files are not the original headers, so use them with caution.
If you want to class-dump private frameworks, you can either install Xcode and class-dump the frameworks on your Mac using the above tools, or you can use classdump-dyld, which works right on your device (classdump-dyld can also be installed via its package hosted on BigBoss). (class-dump may produce better headers than class-dump-z for recent binaries.) This allows for an analysis of what methods exist in the executable, which can help you guess which ones to hook to get given functionality.Īll default (private and public) libraries on iOS are combined into a big cache file to improve performance in /System/Library/Caches//dyld_shared_cache_armX (see dyld_shared_cache for more details). It also comes with a splendid writeup on ObjC/Swift class-dumping: class-dump, class_dump_z, classdump-dyldįrom a given executable, class-dump and class_dump_z will generate header files with class interfaces. It's self-described as "An improved nm + objc/swift class-dump".
Display a lot of valuable info about MachO binaries, including ones with mangled/corrupted load commands.ĭsdump is a tool (compatible with MacOS and and iOS), notable for being also able to dump Swift metadata.Insert/replace load commands, etc (a la optool, install-name-tool).
tbds (a la class-dump, tapi, otool, etc.)
Tested on Windows x86/ARM, MacOS x86/M1, Linux x86/ARM, iOS (in both iSH and SSH), and Android. Ktool is a fully cross-platform tool and library for ObjC class dumping/header generating (among many other things).