给你的Ghidra升个级,Ghidra工具Python3环境配置,Python3脚本分享

准备工作
| Tool 工具 | Version 版本 | Source 源 | 备注 |
| Ghidra | >= 10.3 | https://ghidra-sre.org | 下载解压即可用 |
| Jep | >= 4.1.1 | https://github.com/ninia/jep | 可使用pip安装,pip install jep |
| Gradle | >= 7.3 | https://gradle.org/releases | 下载二进制文件即可使用 |
| Python | >= 3.8 | https://www.python.org/downloads | 自行安装虚拟环境或直接使用系统python环境 |
安装
下列标红分别为:gradle为Gradle下载后的二进制文件,/Users/Ghidra/ghidra_10.4_PUBLIC为Ghidra的安装路径(即解压路径),/opt/homebrew/Cellar/python@3.11/3.11.6/bin/python3为python二进制文件的绝对路径
# 下载项目 git clone https://github.com/mandiant/Ghidrathon.git # 进入项目 cd Ghidrathon # 打包 gradle -PGHIDRA_INSTALL_DIR=/Users/Ghidra/ghidra_10.4_PUBLIC -PPYTHON_BIN=/opt/homebrew/Cellar/python@3.11/3.11.6/bin/python3 # 复制打包好的插件至Ghidra插件目录(Ghidrathon/dist目录下会生成一个压缩包) cp dist/ghidra_10.4_PUBLIC_20231023_Ghidrathon-3.0.1.zip /Users/Ghidra/ghidra_10.4_PUBLIC/Extensions/Ghidra/
至此插件已导入完成,接下来我们启动Ghidra


打开一个项目,他会提示你有一个新的插件,点击确认即可(如果没有,不用担心,我也碰到了继续下面操作)
关闭jpython,打开Ghidrathon
(在打开一个项目的情况下)File—>Configure->Ghidra Core(点击小蓝字Configure)->搜索python->勾选GhidrathonPlugin->取消勾选PythonPlugin

至此python已将版本切换为python3版本,可以愉快的玩耍了。

ghidra_scripts_cha11
Ghidra变强术,一个Ghidra脚本库
微信公众号:攻有道
前言
以下脚本均在Mac下完成,对其他系统可能存在不适配性能,这里提供代码,仅供参考,大家可根据自己的需求自行修改,涉及Python库自行安装,这些功能都是平常个人使用频率较高的,刷题嘎嘎香。
所有Python代码均基于Python3,如无法使用请参考《Ghidra之 什么?为啥你的Ghidra是Python3》https://mp.weixin.qq.com/s/c8LMwNIK3CEVDA3FJo-lLg切换默认Python(默认的是jpython)。
导入脚本文件夹

勾选脚本

菜单栏路径

Ghidra自动化操作
在使用Ghidra的过程中会存在一些重复性的工作,该模块有助于节约生命。
Cha111Ng1.py
一个查看当前二进制文件信息的脚本(这里对不齐!!!希望你是个强迫症)
运行效果

buuctf_cha11.py
BUUCTF刷题脚本,半自动下载题目,开启靶机,提交flag,关闭靶场,查找资料
脚本需修改
飞书安装路径或钉钉安装路径,以及BUUCTF登录凭证信息,BUUCTF题根目录


运行效果


code_exp.py
脚本需修改
你可能需修改为你vscode的安装路径
运行效果


ida_cha11.py
自动使用32/64位IDA打开二进制文件进行分
脚本需修改
修改为你IDA的安装路径
运行效果

update_docker.py
进入docker容器分析,其中需要配置的内容有,设置你的容器ID,以及创建容器时,做好文件夹和端口的映射,我这里使用的docker容器是pwntools,大家可以参考,不过M1环境下的docker里面的gdb无法使用,后面我选择了QEMU
docker run -tid --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --name cha11pwn2 -p 1337:1337 -v /Users/root/tools/tool/03SmartSpace/CTF/CTF-刷题:/home/pwntools/ pwntools/pwntools
脚本需修改
创建容器后,代码中修改位置图中第59行,修改为你的容器ID或名称

运行效果

update_qemu.py
进入qemu虚拟机分析,M1配置qemu安装x86虚拟机相关教程请参见:https://mp.weixin.qq.com/s/jMFMYB1aZaljZ_HtKZxPKg
脚本需修改
参考update_vps.py
运行效果

update_vps.py
上传至VPS分析
脚本需修改

运行效果

Ghidra自动化分析
敬请期待...
拓展资料
《GhidraAPI文档》
《Ghidra之 什么?为啥你的Ghidra是Python3》:https://mp.weixin.qq.com/s/c8LMwNIK3CEVDA3FJo-lLg
《Ghidra之 什么?你的M1为啥可以gdb》:https://mp.weixin.qq.com/s/jMFMYB1aZaljZ_HtKZxPKg
视频教程:https://www.youtube.com/watch?v=Aatbqf6lcjU
项目地址:https://github.com/mandiant/Ghidrathon
作者博客:https://www.mandiant.com/resources/blog/ghidrathon-snaking-ghidra-python-3-scripting