MachO/ObjC Analysis + Editing toolkit.
Installation
# Installing
pip3 install k2l
# Updating
pip3 install --upgrade k2l
Usage
> $ ktool
Usage: ktool [command] [filename]
Commands:
GUI (Still in active development) ---
ktool open [filename] - Open the ktool command line GUI and browse a file
MachO Analysis ---
dump - Tools to reconstruct headers and TBDs from compiled MachOs
json - Dump image metadata as json
cs - Codesigning info
kcache - Kernel cache specific tools
list - Print various lists (Classlist, etc.)
symbols - Print various tables (Symbols, imports, exports)
info - Print misc info about the target mach-o
MachO Editing ---
insert - Utils for inserting load commands into MachO Binaries
edit - Utils for editing MachO Binaries
lipo - Utilities for combining/separating slices in fat MachO files.
Misc Utilities ---
file - Print very basic info about the MachO
img4 - IMG4 Utilities
Run `ktool [command]` for info/examples on using that command
written in pure, 100% python for the sake of platform independence when operating on static binaries and libraries. this should run on any and all implementations of python3.
Tested on:
- Windows/Windows on ARM64
- MacOS x86/arm64
- Linux/Linux ARM64
- iOS (iSH, ssh)
- Android (Termux)
- WebAssembly
- Brython
Credits
Chained fixup processing is currently entirely based on https://github.com/xpcmdshell/bn-chained-fixups
Special thanks to
JLevin and *OS Internals for existing
arandomdev for guidance + code
Blacktop for their amazing ipsw project: https://github.com/blacktop/ipsw