{"id":13496494,"url":"https://github.com/0cyn/ktool","last_synced_at":"2026-02-28T11:11:12.924Z","repository":{"id":37265797,"uuid":"386382473","full_name":"0cyn/ktool","owner":"0cyn","description":"pip install k2l | Mach-O + Obj-C analysis TUI / CLI kit and library. Zero compiled deps, runs anywhere with a python interpreter.","archived":false,"fork":false,"pushed_at":"2024-08-04T18:24:16.000Z","size":43408,"stargazers_count":507,"open_issues_count":21,"forks_count":24,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-06T10:19:52.897Z","etag":null,"topics":["python","reverse-engineering"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0cyn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"cxnder","patreon":"arm64e"}},"created_at":"2021-07-15T18:04:51.000Z","updated_at":"2025-12-03T19:14:45.000Z","dependencies_parsed_at":"2022-07-12T05:00:57.588Z","dependency_job_id":"c268d31f-3d1e-482b-bf20-87078dda2a51","html_url":"https://github.com/0cyn/ktool","commit_stats":null,"previous_names":["kritantadev/kdump","0cyn/ktool","kritantadev/ktool","cxnder/ktool"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/0cyn/ktool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0cyn%2Fktool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0cyn%2Fktool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0cyn%2Fktool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0cyn%2Fktool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0cyn","download_url":"https://codeload.github.com/0cyn/ktool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0cyn%2Fktool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29931574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T09:58:13.507Z","status":"ssl_error","status_checked_at":"2026-02-28T09:57:57.047Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","reverse-engineering"],"created_at":"2024-07-31T19:01:49.046Z","updated_at":"2026-02-28T11:11:12.912Z","avatar_url":"https://github.com/0cyn.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\r\n\u003ca href=\"https://github.com/0cyn/ktool/tree/master/EXTERNAL_LICENSES#image-notes\"\u003e\r\n  \u003cimg src=\".github/svg/ktool2.png\" alt=\"Logo\" width=450px\u003e \r\n\u003c/a\u003e\r\n\u003c/p\u003e\r\n\u003ch4 align=\"center\"\u003e\r\nMachO/ObjC Analysis analysis tool.\r\n\u003c/h4\u003e\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca href=\"https://github.com/kritantadev/ktool/actions/workflows/tests.yml\"\u003e\r\n    \u003cimage src=\"https://github.com/kritantadev/ktool/actions/workflows/tests.yml/badge.svg\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://ktool.rtfd.io\"\u003e\r\n    \u003cimage src=\"https://readthedocs.org/projects/ktool/badge/?version=latest\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://pypi.org/project/k2l/\"\u003e\r\n    \u003cimage src=\"https://badge.fury.io/py/k2l.svg?asdf\"\u003e\r\n  \u003c/a\u003e\r\n    \u003cbr\u003e\r\n\u003c/p\u003e\r\n    \r\n\u003cp align=\"center\"\u003e\r\n  \u003cstrong\u003e\u003ca href=\"https://ktool.cynder.me/en/latest/ktool.html\"\u003e Library Documentation \u003c/a\u003e\u003c/strong\u003e\r\n  \u003cbr\u003e\r\n\u003c/p\u003e\r\n    \r\n\u003cimg src=\".github/tui.png\"\u003e\r\n\r\n### Installation\r\n\r\n```shell\r\n# Installing\r\npip3 install k2l\r\n\r\n# Updating\r\npip3 install --upgrade k2l\r\n```\r\n\r\n### Usage\r\n\r\nktool is both a convenient CLI toolkit and a library that can be used\r\nin other tools.\r\n\r\n##### CLI Usage\r\n```\r\n\u003e $ ktool\r\nUsage: ktool \u003cglobal flags\u003e [command] \u003cflags\u003e [filename]\r\n\r\nCommands:\r\n\r\nGUI (Still in active development) ---\r\n    ktool open [filename] - Open the ktool command line GUI and browse a file\r\n\r\nMachO Analysis ---\r\n    dump - Tools to reconstruct certain files (headers, .tbds) from compiled MachOs\r\n    json - Dump image metadata as json\r\n    cs - Codesigning info\r\n    kcache - Kernel cache specific tools\r\n    list - Print various lists (ObjC Classes, etc.)\r\n    symbols - Print various tables (Symbols, imports, exports)\r\n    info - Print misc info about the target mach-o\r\n\r\nMachO Editing ---\r\n    insert - Utils for inserting load commands into MachO Binaries\r\n    edit - Utils for editing MachO Binaries\r\n    lipo - Utilities for combining/separating slices in fat MachO files.\r\n\r\nMisc Utilities ---\r\n    file - Print very basic info about the MachO\r\n    img4 - IMG4 Utilities\r\n\r\nRun `ktool [command]` for info/examples on using that command\r\n\r\nGlobal Flags:\r\n    -f - Force Load (ignores malformations in the MachO and tries to load whatever it can)\r\n    -v [-1 through 5] - Log verbosiy. -1 completely silences logging.\r\n    -V - Print version string (`ktool -V | cat`) to disable the animation\r\n```\r\n\r\n##### Library  \r\n\r\nLibrary documentation is located [here](https://ktool.cynder.me/en/latest/ktool.html)\r\n\r\n---\r\n\r\nwritten in pure, 100% python for the sake of platform independence when operating on static binaries and libraries. \r\nthis should run on any and all implementations of python3.\r\n    \r\nTested on:\r\n* Windows/Windows on ARM64\r\n* MacOS x86/arm64\r\n* Linux/Linux ARM64\r\n* iOS (iSH, ssh)\r\n* Android (Termux)\r\n* WebAssembly\r\n* Brython\r\n\r\n#### Special thanks to\r\n\r\nEveryone who has contributed in the past and helped make this into a tool that is actually useful for people other than myself. \r\n\r\nJLevin and *OS Internals for existing\r\n\r\narandomdev for guidance + code\r\n\r\nBlacktop for their amazing ipsw project: https://github.com/blacktop/ipsw  \r\n\r\nArtists behind the images used in this project's logo: https://github.com/0cyn/ktool/tree/master/EXTERNAL_LICENSES#image-notes\r\n\r\nDani R* who helped motivate me to make this tech demo project into something, and everything else I ever managed to start, to chase lofty unreachable goals in spite of myself; to whom this project is dedicated, and to whom I promise I will find something more interesting to dedicate. \r\n\r\n","funding_links":["https://github.com/sponsors/cxnder","https://patreon.com/arm64e"],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0cyn%2Fktool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0cyn%2Fktool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0cyn%2Fktool/lists"}