首页
社区
课程
招聘
[原创]武装Ghidra,Python3+buuctf刷题脚本
2024-1-9 13:50 6214

[原创]武装Ghidra,Python3+buuctf刷题脚本

2024-1-9 13:50
6214

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

脚本地址:https://github.com/Cha111Ng1/ghidra_scripts_cha11

图片描述

准备工作

插件地址:https://github.com/mandiant/Ghidrathon

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脚本库

微信公众号:攻有道

项目地址:https://github.com/Cha111Ng1/ghidra_scripts_cha11

前言

导入脚本文件夹

图片描述

勾选脚本

图片描述

菜单栏路径

图片描述

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


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2024-1-9 15:02 被非白即黑编辑 ,原因: 图片过期
收藏
点赞5
打赏
分享
最新回复 (2)
雪    币: 19349
活跃值: (28971)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋狝 2024-1-10 11:12
2
1
感谢分享
雪    币: 964
活跃值: (1250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_fssslkzs 2024-1-10 11:40
3
0
tql
游客
登录 | 注册 方可回帖
返回