「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. 脚本导入方法

  1. 下载脚本库到本地
  2. 在Ghidra中:
    • 打开"Script Manager"
    • 点击"Manage Script Directories"
    • 添加脚本所在文件夹
    • 勾选需要使用的脚本
  3. 脚本可通过菜单栏路径访问

4. 自动化操作脚本

4.1 Cha111Ng1.py

功能: 查看当前二进制文件的基本信息

特点:

  • 快速显示文件关键信息
  • 适合初步分析阶段使用

4.2 buuctf_cha11.py

功能: BUUCTF刷题自动化脚本

配置要求:

  1. 修改飞书或钉钉的安装路径
  2. 设置BUUCTF登录凭证信息
  3. 指定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容器进行分析

配置要求:

  1. 创建docker容器时做好文件夹和端口映射
  2. 示例容器配置:
    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
    
  3. 脚本中需修改容器ID或名称(代码第59行)

注意: M1环境下的docker容器中gdb可能无法使用

5.2 update_qemu.py

功能: 进入qemu虚拟机进行分析

配置要求:

5.3 update_vps.py

功能: 上传至VPS进行分析

配置要求:

  • 需要根据个人VPS配置进行相应修改

6. 进阶资源

  1. Ghidra API文档: 官方文档是开发自定义脚本的重要参考
  2. Python3配置指南: Ghidra之 什么?为啥你的Ghidra是Python3

7. 使用建议

  1. 脚本定制: 所有脚本都可根据个人需求进行修改
  2. 环境适配: 注意不同操作系统可能需要调整路径和依赖
  3. 依赖管理: 涉及的Python库需要自行安装
  4. 安全考虑: 使用BUUCTF脚本时注意凭证信息安全

8. 未来更新

作者计划添加更多"Ghidra自动化分析"功能,建议关注项目更新。

通过合理使用这些脚本,可以显著提高逆向工程和CTF解题的效率,特别是在重复性任务和跨工具协作方面。

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容器时做好文件夹和端口映射 示例容器配置: 脚本中需修改容器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解题的效率,特别是在重复性任务和跨工具协作方面。