Home

Awesome

<p align="center"> <a href="https://github.com/0cyn/ktool/tree/master/EXTERNAL_LICENSES#image-notes"> <img src=".github/svg/ktool2.png" alt="Logo" width=450px> </a> </p> <h4 align="center"> MachO/ObjC Analysis + Editing toolkit. </h4> <p align="center"> <a href="https://github.com/kritantadev/ktool/actions/workflows/tests.yml"> <image src="https://github.com/kritantadev/ktool/actions/workflows/tests.yml/badge.svg"> </a> <a href="https://ktool.rtfd.io"> <image src="https://readthedocs.org/projects/ktool/badge/?version=latest"> </a> <a href="https://pypi.org/project/k2l/"> <image src="https://badge.fury.io/py/k2l.svg?asdf"> </a> <br> </p> <p align="center"> <strong><a href="https://ktool.cynder.me/en/latest/ktool.html"> Library Documentation </a></strong> <br> </p> <img src=".github/tui.png">

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:

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