工具

ktool Mach-O 与 Objective-C 分析工具包

纯 Python 编写的 Mach-O 与 Objective-C 静态分析工具包,可作为 ktool 命令行、终端浏览界面(ktool open)或程序库使用,没有需要编译的依赖。其命令可列出加载命令、链接库、符号表、导入与导出符号、Objective-C 类和协议、Swift 类型、函数起始地址以及代码签名权限(entitlements),并可导出重建的 Objective-C 头文件或 .tbd 存根。它还能列出并提取内核缓存中的 kext,拆分和合并 fat 二进制文件,修改安装名并插入加载命令。

目标
应用 · 二进制
类别
原生分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅时 PyPI 上的最新版本为 k2l 2.0.0,上传于 2024-01-10,GitHub 上也有对应标签。所审 master 分支 2026-03-07 的最新提交在 pyproject.toml 中声明版本 2.1.2,该版本尚未发布。README 注明终端图形界面仍在积极开发中,还列出了 file 和 img4 工具,但所审的命令解析代码中并未定义这两个命令。
  • 用 pip install k2l 安装:该包要求 Python 3.6.2 或更高版本,依赖 Pygments,在 Windows 上还会安装 windows-curses。README 称可在 Windows、macOS、Linux(含 ARM64)、通过 iSH 运行的 iOS、通过 Termux 运行的 Android、WebAssembly 和 Brython 上运行。除非设置 KTOOL_NO_UPDATE_CHECK,每次运行都会在后台线程中向 PyPI 查询是否有更新的 k2l。
  • 输入是使用者自行提供的 Mach-O 文件、fat 二进制文件或内核缓存;仓库未提交任何 Mach-O 二进制文件。tests/src 中有两个小型 Objective-C 测试源码、一个权限 plist,以及 libSystem.tbd——这是 Apple SDK 中常见的那类文本存根,列出 watchOS libSystem 的导出符号,用于链接 arm64_32 测试构建;tests/build.ninja 在本地用 Xcode 的 clang、lipo 和 codesign 编译测试二进制文件。
  • macOS 上的 GitHub Actions 工作流会构建这些测试二进制文件,运行 tests/unit.py,并测试 insert、edit、lipo、dump 和 symbols 命令;它在所审提交上的运行结果为失败。
  • MIT(LICENSE,版权 2021 _kritanta)。EXTERNAL_LICENSES 说明链式修复(chained fixup)代码基于作者为 Binary Ninja 的 Mach-O 视图插件编写的代码,并附有相应的 Apache-2.0 许可证。所审来源未提及任何 AI 或 REA 用途,本条目也未安装或运行该工具。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · 0cyn/ktool · 修订 faed829
  2. pyproject.toml GitHub · 0cyn/ktool · 修订 faed829
  3. src/ktool/ktool_script.py GitHub · 0cyn/ktool · 修订 faed829
  4. tests/src GitHub · 0cyn/ktool · 修订 faed829
  5. tests/build.ninja GitHub · 0cyn/ktool · 修订 faed829
  6. .github/workflows/tests.yml GitHub · 0cyn/ktool · 修订 faed829
  7. LICENSE GitHub · 0cyn/ktool · 修订 faed829
  8. EXTERNAL_LICENSES/README.md GitHub · 0cyn/ktool · 修订 faed829
  9. https://github.com/0cyn/ktool/releases/tag/2.0.0
  10. https://pypi.org/project/k2l/2.0.0/
  11. https://github.com/0cyn/ktool/actions/runs/22801141527

同分区更多条目:原生二进制

原生二进制分区全部 158 项资源