「Ghidra」一个自用的Ghidra脚本分享
字数 1427 2025-08-22 12:22:30
Ghidra脚本库使用指南:提升逆向工程效率
1. 项目概述
ghidra_scripts_cha11 是一个专为Ghidra逆向工程工具设计的脚本库,由Cha111Ng1开发并维护。该库包含多个实用脚本,旨在自动化常见逆向任务,提高CTF解题和二进制分析的效率。
项目地址: https://github.com/Cha111Ng1/ghidra_scripts_cha11
2. 环境要求
- 操作系统: 脚本主要在macOS下开发,其他系统可能需要适配
- Python版本: 所有脚本基于Python3
- Ghidra配置: 需要将Ghidra默认的jPython切换为Python3(参考文章《Ghidra之 什么?为啥你的Ghidra是Python3》)
3. 脚本导入方法
- 下载脚本库到本地
- 在Ghidra中:
- 打开"Script Manager"
- 点击"Manage Script Directories"
- 添加脚本所在文件夹
- 勾选需要使用的脚本
- 脚本可通过菜单栏路径访问
4. 自动化操作脚本
4.1 Cha111Ng1.py
功能: 查看当前二进制文件的基本信息
特点:
- 快速显示文件关键信息
- 适合初步分析阶段使用
4.2 buuctf_cha11.py
功能: BUUCTF刷题自动化脚本
配置要求:
- 修改飞书或钉钉的安装路径
- 设置BUUCTF登录凭证信息
- 指定BUUCTF题根目录
功能特点:
- 半自动下载题目
- 自动开启靶机
- 提交flag
- 关闭靶场
- 查找相关资料
4.3 code_exp.py
功能: 快速在VSCode中打开分析
配置要求:
- 需要修改为你的VSCode安装路径
4.4 ida_cha11.py
功能: 自动使用IDA打开二进制文件进行分析
配置要求:
- 需要修改为你的IDA安装路径
- 自动识别32/64位文件并选择相应IDA版本
5. 远程分析脚本
5.1 update_docker.py
功能: 进入docker容器进行分析
配置要求:
- 创建docker容器时做好文件夹和端口映射
- 示例容器配置:
docker run -tid --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --name cha11pwn2 -p 1337:1337 -v /Users/root/tools/tool/03_SmartSpace/CTF/CTF-刷题:/home/pwntools/pwntools/pwntools - 脚本中需修改容器ID或名称(代码第59行)
注意: M1环境下的docker容器中gdb可能无法使用
5.2 update_qemu.py
功能: 进入qemu虚拟机进行分析
配置要求:
- 参考update_vps.py脚本
- M1配置qemu安装x86虚拟机教程: https://mp.weixin.qq.com/s/jMFMYB1aZaljZ_HtKZxPKg
5.3 update_vps.py
功能: 上传至VPS进行分析
配置要求:
- 需要根据个人VPS配置进行相应修改
6. 进阶资源
- Ghidra API文档: 官方文档是开发自定义脚本的重要参考
- Python3配置指南: Ghidra之 什么?为啥你的Ghidra是Python3
7. 使用建议
- 脚本定制: 所有脚本都可根据个人需求进行修改
- 环境适配: 注意不同操作系统可能需要调整路径和依赖
- 依赖管理: 涉及的Python库需要自行安装
- 安全考虑: 使用BUUCTF脚本时注意凭证信息安全
8. 未来更新
作者计划添加更多"Ghidra自动化分析"功能,建议关注项目更新。
通过合理使用这些脚本,可以显著提高逆向工程和CTF解题的效率,特别是在重复性任务和跨工具协作方面。