Skip to content
/ ktool Public

pip install k2l | Mach-O + Obj-C analysis TUI / CLI kit and library. Zero compiled deps, runs anywhere with a python interpreter.

License

Notifications You must be signed in to change notification settings

0cyn/ktool

Folders and files

NameName
Last commit message
Last commit date
Aug 4, 2024
Nov 8, 2023
Jan 10, 2024
Aug 4, 2024
Nov 11, 2023
Jun 20, 2022
Nov 11, 2023
Aug 4, 2024
Nov 11, 2023
Mar 26, 2022
Aug 7, 2021
Jan 10, 2024
Nov 10, 2023
Aug 4, 2024
Aug 4, 2024

Repository files navigation

Logo

MachO/ObjC Analysis + Editing toolkit.


Library Documentation

Installation

# 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 <global flags> [command] <flags> [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


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

About

pip install k2l | Mach-O + Obj-C analysis TUI / CLI kit and library. Zero compiled deps, runs anywhere with a python interpreter.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages