Ghidra Script 使用 Python语言开发调试环境配置及示例

前言

Ghidra 脚本的开发有两种方式,一种是直接在Ghidra的脚本管理器中新建脚本,然后在ghidra内置的基本编辑器中编写脚本,如图:
在这里插入图片描述
在这里插入图片描述

只能进行简单的编写,使用print等进行调试。另外一种就是安装Eclipse来编写脚本和调试。下面主要介绍第二种方法。因为第二个方法可以调试啊,Ghidra的API文档内容也太多了啊,还是直接下断点看变量方便啊。而且从Eclipse里面Debug模式启动Ghidra,可以实时修改脚本,实时下断点,实时运行看结果,非常方便!

Eclipse配置

下载

从Eclipse 官网 https://www.eclipse.org/downloads/packages/ 下载Eclipse IDE for C/C++ Developers,我下载的文件名eclipse-cpp-2021-09-R-win32-x86_64.zip

解压出eclipse文件夹,我放到了C:\Users\sud0w\OneDrive\Tools\Sec\Bin\Ghidra\eclipse,运行eclipse.exe

第一次启动需要选择工作区,我的路径C:\Users\sud0w\OneDrive\Project\eclipse-workspace

安装pydev

选择 Help - Install New Software
Work with 输入 http://www.pydev.org/updates,点Add(可能因为网络原因比较慢,可以挂全局代理)
勾选 PyDev - PyDev for Eclipse
在这里插入图片描述
一路next,accept,finish,等待右下角进度条走完,提示重启Eclipse

验证安装成功:选择Window->Perspective->Open Perspective->Other, 选择 PyDev 并点击 Open

安装ghidra dev

选择 Help -> Install New Software
点击add,选择archive,选择<path>/Ghidra/Extensions/Eclipse/GhidraDev/路径下的GhidraDev-2.x.x.zip
在这里插入图片描述
点击add,勾选
在这里插入图片描述
一路next,accept,finish,等待右下角进度条走完,会提示没有签名,点anyway,然后提示restart重启eclipse

配置本地的ghidra目录

选择 GhidraDev->preferences->Ghidra Installations.
点ADD,选择ghidra目录,然后apply and close
在这里插入图片描述

验证一切完毕

打开ghidra,打开Code Browser window,Script Manager Window->Script Manager

选择一个py 脚本,例如AddCommentToProgramScriptPy.py,右键选择edit with eclipse
在这里插入图片描述
此时eclipse提示创建project,点ok。

一路默认next到
在这里插入图片描述
点+号,提示ghidra内有一个jpython,是否使用,点yes,然后等一会,点finish

此时eclipse已经可以看到ghidrascripts项目及目录了:
在这里插入图片描述

新建一个Script试试

在这里插入图片描述

在这里插入图片描述

随便写一行
在这里插入图片描述
点run,启动ghidra,code browser,script manager,可以看到分类里有一个test,里面有刚写的脚本susutest。
在这里插入图片描述
运行:
在这里插入图片描述
到此开发和调试的环境已经搞定了。

下面讲一下如何调试

下断点,在python脚本对应的行,右键下断点
在这里插入图片描述
左上角选择Debug,然后点击debug,开始调试,会自动启动ghidra实例,需要注意运行前应当关闭所有已经在运行的ghidra实例。然后正常启动code browser,去脚本管理器中找到刚才下断点的脚本,并运行。等待一下,直到右侧变量窗口出现内容,说明程序已经断下来了,并且此时可以使用Eclipse的工具栏进行单步调试:
在这里插入图片描述

参考

A Guide to Ghidra Scripting Development for Malware Researchers
Ghidra Blog - Online Courses - Intermediate scripting(推荐阅读)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏打呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值