https://github.com/0cyn/ktool
pip install k2l | Mach-O + Obj-C analysis TUI / CLI kit and library. Zero compiled deps, runs anywhere with a python interpreter.
https://github.com/0cyn/ktool
python reverse-engineering
Last synced: 10 months ago
JSON representation
pip install k2l | Mach-O + Obj-C analysis TUI / CLI kit and library. Zero compiled deps, runs anywhere with a python interpreter.
- Host: GitHub
- URL: https://github.com/0cyn/ktool
- Owner: 0cyn
- License: mit
- Created: 2021-07-15T18:04:51.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-04T18:24:16.000Z (over 1 year ago)
- Last Synced: 2025-03-28T19:10:04.898Z (10 months ago)
- Topics: python, reverse-engineering
- Language: Python
- Homepage:
- Size: 41.4 MB
- Stars: 496
- Watchers: 3
- Forks: 23
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
MachO/ObjC Analysis + Editing toolkit.
### Installation
```shell
# Installing
pip3 install k2l
# Updating
pip3 install --upgrade k2l
```
### Usage
ktool is both a convenient CLI toolkit and a library that can be used
in other tools.
##### CLI 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 certain files (headers, .tbds) from compiled MachOs
json - Dump image metadata as json
cs - Codesigning info
kcache - Kernel cache specific tools
list - Print various lists (ObjC Classes, 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
Global Flags:
-f - Force Load (ignores malformations in the MachO and tries to load whatever it can)
-v [-1 through 5] - Log verbosiy. -1 completely silences logging.
-V - Print version string (`ktool -V | cat`) to disable the animation
```
##### Library
Library documentation is located [here](https://ktool.cynder.me/en/latest/ktool.html)
---
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
#### Special thanks to
JLevin and *OS Internals for existing
arandomdev for guidance + code
Blacktop for their amazing ipsw project: https://github.com/blacktop/ipsw
Artists behind the images used in this project's logo: https://github.com/0cyn/ktool/tree/master/EXTERNAL_LICENSES#image-notes