工具
Ghidra Ninja Ghidra 脚本合集
Thomas Roth(Ghidra Ninja)编写的 Ghidra Python 脚本合集,脚本会出现在 Script Manager 的 Ghidra Ninja 分类下。binwalk.py 和 yara.py 对已加载的程序运行 binwalk 或自带的 YARA 密码常量规则,并为发现的结果添加书签;YaraSearch.py 则使用用户选择的规则文件完成同样的工作;swift_demangler.py 还原 Swift 函数名;golang_renamer.py 依据 .gopclntab 表恢复去符号 Go 二进制中的函数名;export_gameboy_rom.py 可将用 GhidraBoy 导入的 Game Boy 程序重新导出为可运行的 ROM。
使用条件与局限
- 没有发布版本或标签;最后一次提交是 2020-10-07 的合并。2020 年至 2025 年间提交的未关闭 issue 报告了 golang_renamer 数据类型错误、binwalk.py 临时文件错误和内存不足等问题,此后再无新的提交。
- 安装方法是在 Ghidra 的 Script Manager 中把克隆下来的仓库添加为脚本目录。这些脚本是为 Ghidra 的 Jython 解释器编写的 Python 2 代码,README 未注明支持的 Ghidra 版本。binwalk.py、yara.py 和 YaraSearch.py 需要 PATH 中有 binwalk 或 yara,swift_demangler.py 需要 swift 工具链,export_gameboy_rom.py 需要 GhidraBoy 扩展。
- 输入为分析者已加载到 Ghidra 中的程序;export_gameboy_rom.py 处理的是用户自行导入的 Game Boy ROM,一个未关闭的 issue 指出它无法处理单页 ROM。golang_renamer.py 只查找 Go 1.16 之前使用的 .gopclntab 头部,另有未关闭的 issue 请求支持 Go 1.16。YARA 和 binwalk 的结果只是签名匹配,需分析者复核。
- 采用 GPL-3.0(见 LICENSE)。README 称自带的 yara-crypto.yar 规则采用 GPLv2 许可,另加入了一条署名 @phoul 的 SHA256 规则,并说明 golang_renamer.py 移植自 George Zaytsev 的 go_renamer.py。本次审阅未运行任何脚本。
关于此条目
- 类型
- 工具
- 类别
- 原生分析工具
- 关联
- 基础工具
- 目标
- 二进制
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · ghidraninja/ghidra_scripts · 修订 99f2a86
- golang_renamer.py GitHub · ghidraninja/ghidra_scripts · 修订 99f2a86
- YaraSearch.py GitHub · ghidraninja/ghidra_scripts · 修订 99f2a86
- yara-crypto.yar GitHub · ghidraninja/ghidra_scripts · 修订 99f2a86
- LICENSE GitHub · ghidraninja/ghidra_scripts · 修订 99f2a86
- https://github.com/ghidraninja/ghidra_scripts/issues/12
- https://github.com/ghidraninja/ghidra_scripts/issues/19