zhutao100/hopper-disassembler-skill

GitHub: zhutao100/hopper-disassembler-skill

Hopper反汇编技能库,用于macOS应用程序的二进制代码分析。

Stars: 0 | Forks: 0

# Hopper 反汇编技能 现代 macOS 上可重复、授权的 Hopper 反汇编工作流程的代理技能库。 ## 内容 ``` README.md AGENTS.md hopper-disassembler-analysis/ ├── SKILL.md ├── agents/openai.yaml ├── scripts/ ├── references/ └── assets/ ``` ## 技能 `hopper-disassembler-analysis` 帮助代理使用 Hopper 反汇编、Hopper Python 脚本、Hopper 内置的 MCP 服务器和确定性快照工件来检查本地二进制文件和 macOS 应用程序包。 主要入口点: ``` hopper-disassembler-analysis/SKILL.md ``` ## 安装 当前 Codex/Open 代理技能发现的用户范围安装: ``` hopper-disassembler-analysis/scripts/install_codex_skill.sh --replace ``` 存储库范围安装: ``` hopper-disassembler-analysis/scripts/install_codex_skill.sh --scope repo --replace ``` 旧版本构建的 Codex 安装位置: ``` hopper-disassembler-analysis/scripts/install_codex_skill.sh --scope legacy-codex --replace ``` 手动安装: ``` mkdir -p "$HOME/.agents/skills" cp -R hopper-disassembler-analysis "$HOME/.agents/skills/" ``` 可选的 Hopper UI 脚本安装: ``` hopper-disassembler-analysis/scripts/install_hopper_scripts.sh --replace ``` 可选的 Codex MCP 与 Hopper 集成: ``` hopper-disassembler-analysis/scripts/install_codex_hopper_mcp.sh --replace ``` ## 常用命令 列出可用的 macOS 分析工具: ``` hopper-disassembler-analysis/scripts/macos_toolchain_inventory.py \ --output /tmp/macos-toolchain.md ``` 在 Hopper 之前检查目标: ``` hopper-disassembler-analysis/scripts/inspect_macho_targets.py \ --include-deps \ --output /tmp/target.inventory.md \ /path/to/Target.app ``` 导出 Hopper 快照和面向 LLM 的摘要: ``` hopper-disassembler-analysis/scripts/run_hopper_export.sh \ --summary-output /tmp/target.hopper-summary.md \ --output /tmp/target.hopper-snapshot.json \ /path/to/Target.app ``` 对于大型目标的重复分析,可以保持文档打开以供 MCP 后续处理,或者保存可重复使用的 `.hop` 数据库: ``` hopper-disassembler-analysis/scripts/run_hopper_export.sh \ --wait-for-analysis \ --save-hop /tmp/target.hop \ --output /tmp/target.hopper-snapshot.json \ /path/to/Target.app hopper-disassembler-analysis/scripts/run_hopper_export.sh \ --database /tmp/target.hop \ --output /tmp/target.reuse.hopper-snapshot.json ``` `--database` 期望一个保存的 Hopper `.hop` 数据库,而不是快照 JSON 文件。 在不重新打开 Hopper 的情况下搜索现有快照: ``` hopper-disassembler-analysis/scripts/hopper_evidence_search.py \ --ignore-case \ --output /tmp/target.evidence.md \ /tmp/target.hopper-snapshot.json \ 'FunctionName|UniqueString|0x100003f50' ``` 将 Hopper 地址映射到文件偏移量: ``` hopper-disassembler-analysis/scripts/macho_address_map.py \ --arch arm64 \ --queries-only \ --address 0x100003f50 \ /path/to/target ``` 反汇编一个焦点范围而不转储大型二进制文件: ``` hopper-disassembler-analysis/scripts/macho_lldb_disassemble.py \ --arch arm64 \ --address 0x100003f50 \ --size 0x180 \ /path/to/target ``` 创建一个授权的通用切片工作区: ``` hopper-disassembler-analysis/scripts/macho_universal_workspace.py \ --sign-ad-hoc \ --output-dir /tmp/target.macho-workspace \ /path/to/Target.app ``` 对于应用程序包输入,修改 `patched/` 下的可写副本,然后运行 `recombine.sh`,最后安装到可丢弃的应用程序副本中: ``` APP_COPY_PATH=/tmp/Target.app /tmp/target.macho-workspace/install_rebuilt_into_app.sh ``` 对于本地临时代码签名,仅使用本地测试权限;不要保留生产团队、应用程序标识符、iCloud 或推送权限。 探测 Hopper MCP: ``` hopper-disassembler-analysis/scripts/hopper_mcp_probe.py --json --call-tool none hopper-disassembler-analysis/scripts/hopper_mcp_probe.py --json --call-tool search_name --tool-args '{"pattern":"main"}' ``` ## 验证 无需 Hopper 的可移植验证。验证器还会在 `references/`、`scripts/` 或 `assets/` 中的捆绑文件无法从技能指令或使用脚本访问时失败: ``` hopper-disassembler-analysis/scripts/validate_skill_repo.py . python3 -m py_compile hopper-disassembler-analysis/scripts/*.py bash -n hopper-disassembler-analysis/scripts/*.sh ``` 可选的授权 macOS 主机上的 Hopper 安装验证: ``` hopper-disassembler-analysis/scripts/hopper_mcp_probe.py --json --call-tool none hopper-disassembler-analysis/scripts/run_hopper_export.sh \ --timeout 180 \ --procedure-pattern 'EntryPoint|sub_' \ --max-procedures 5 \ --max-basic-blocks 2 \ --max-strings 10 \ --max-string-xrefs 4 \ --summary-output /tmp/echo.hopper-summary.md \ --output /tmp/echo.hopper-snapshot.json \ /bin/echo hopper-disassembler-analysis/scripts/hopper_snapshot_summary.py \ --filter 'EntryPoint|sub_' \ /tmp/echo.hopper-snapshot.json \ >/tmp/echo.hopper-summary.check.md ``` 除非任务明确要求持久性工件,否则将生成的快照写入 `/tmp`。
标签:威胁狩猎, 逆向工具