开源工具Ghidra的调试模式配置

逆向病毒分析 1年前 (2023) admin
173 0 0

在本文中,我们将介绍Ghidra的调试模式配置。通过使用Eclipse IDE,将能够以专业的方式开发和调试Ghidra的功能,包括之前文章中介绍的插件。

Ghidra官方正式支持的调试器是Eclipse IDE。从技术角度来讲,其它调试器也是可以的,但不受官方支持。Ghidra  9.0版本的调试模式功能中存在严重的安全问题,因此建议在开发环境中使用任何更高版本的程序。本文中使用的安全稳定的版本是9.1.2。


建立Ghidra开发环境

安装的软件环境要求:

  • 适用于x86_64的Java JDK 11

    https://adoptopenjdk.net/releases.html?variant=openjdk11&jvmVariant=hotspot

  • 适用于Java开发人员的Eclipse IDE(任何支持JDK 11的版本:),Ghidra官方正式集成和支持的IDE。

    https://www.eclipse.org/downloads/packages/

  • PyDev 6.3.1

    https://netix.dl.sourceforge.net/project/pydev/pydev/PyDev%206.3.1/PyDev%206.3.1.zip

  • GhidraDev插件

    https://github.com/NationalSecurityAgency/ghidra/tree/f33e2c129633d4de544e14bc163ea95a4b52bac5/GhidraBuild/EclipsePlugins/GhidraDev

软件运行环境要求概述

我们需要Java开发工具包(JDK)和PyDev,因为它们允许我们分别使用Java和Python编程语言。


虽然Eclipse是唯一官方支持的IDE,但在技术上可以将IntelliJ与Ghidra或任何其他IDE集成(https://reversing.technology/2019/11/18/ghidradev-pt3-dbg.html),以用于高级目的,并深入调查集成的工作原理。

如果您愿意,您可以安装更多依赖项。事实上,最终可能需要更多的依赖项来调试和/或开发特定组件。

Ghidra DevGuide文档:如果您想为完整的Ghidra开发环境安装所有必要的依赖项,那么您可以参考文档中的依赖项目录,这也有助于在设置环境时回答特定问题。您可以在https://github.com/NationalSecurityAgency/ghidra/blob/master/DevGuide.md上找到文档。文档目前明确指出,您可以按特定顺序安装这些依赖项,但在这种情况下,建议先安装Java JDK,因为Eclipse稍后会要求安装它。


安装Java JDK

JDK的安装很简单。首先,您必须解压缩ZIP文件,并将JAVA_HOME环境变量设置为JDK解压缩的位置,然后将其bin目录的路径添加到PATH环境变量中。

可以通过打印JAVA_HOME内容和Java版本来检查JDK的安装是否成功。使用以下两个命令并检查输出:

开源工具Ghidra的调试模式配置

根据输出表明JDK 11.0.6已成功安装和配置。


安装Eclipse IDE

安装Java JDK后,从官方网站的软件包部分进行下载Eclipse IDE:

https://www.eclipse.org/downloads/packages/

开源工具Ghidra的调试模式配置

图3.1 – 下载Eclipse IDE

下一步是从Eclipse中安装PyDev。


安装PyDev

安装Eclipse后,通过右键单击文件夹并选择“全部提取”来解压下载的PyDev 6.3.1 ZIP文件的内容:

开源工具Ghidra的调试模式配置

图3.2 – 将PyDev解压缩到文件夹

将PyDev 6.3.1.zip的所有内容解压缩到名为PyDev 6.3.1的文件夹中:

开源工具Ghidra的调试模式配置

图3.3 –解压缩PyDev 6.3.1.zip文件的内容

通过单击“帮助”菜单中的“安装新软件…”选项从Eclipse安装它,并将解压缩的PyDev存档文件的文件夹路径添加为本地存储库(以下图中的“本地…”选项):

开源工具Ghidra的调试模式配置

图3.4 – 添加PyDev作为Eclipse本地存储库

因为不存在分类项目,因此按类别分组项目这个选项取消选中,以避免出现其它问题:

开源工具Ghidra的调试模式配置

图3.5 – ThePyDev插件安装程序不可见,因为安装程序按类别分组

取消选中分组项目后,将能够选择PyDev for Eclipse选项来进行安装:

开源工具Ghidra的调试模式配置

图3.6 – 检查要安装的PyDev

单击下一步>继续安装:

开源工具Ghidra的调试模式配置

图3.7 – 查看要安装的项目

在安装PyDev之前,接受许可:

开源工具Ghidra的调试模式配置

图3.8 – 接受PyDev许可 

安装PyDev后, 需要重新启动Eclipse,以使软件中的更改生效:

开源工具Ghidra的调试模式配置

图3.9 – 重新启动Eclipse

完成此步骤后, Eclipse将获得对的Python支持。  可以通过单击帮助|关于Eclipse IDE|安装详细信息来检查 :

开源工具Ghidra的调试模式配置

图3.10 – 验证PyDev是否已成功安装在Eclipse中

此Eclipse菜单也可用于更新、卸载和查看任何已安装的Eclipse IDE扩展的属性。


安装GhidraDev

与安装PyDev的方式类似,对于Ghidra/Eclipse同步,需要安装GhidraDev插件,该插件可在Ghidra的安装目录ExtensionsEclipseGhidraDevGhidraDev-2.1.0.zip中找到,不用解压缩,使用Archive…选项进行索引:

开源工具Ghidra的调试模式配置

图 3.11 – 添加 GhidraDev 作为 Eclipse本地仓库

之后,点击添加。无需担心按类别选项分组项目,因为存在包含需要使用的GhidraDev插件中的Ghidra类别。 只需确保GhidraDev选项已标记,然后单击下一步>按钮:

开源工具Ghidra的调试模式配置

图 3.12 – 安装 GhidraDev 插件

之后,可以查看安装细节。 再次单击下一步>以继续安装GhidraDev:

开源工具Ghidra的调试模式配置

图3.13 – 检查要安装的项目

接受GhidraDev许可条款,然后单击完成:

开源工具Ghidra的调试模式配置

图3.14 – 接受GhidraDev许可条款

此时,将出现安全警告。因为它无法验证插件的真实性,没有签名。 单击安装以继续:

开源工具Ghidra的调试模式配置

图3.15 – 接受安全警告

要让更改生效,请单击立即重新启动以重新启动Eclipse IDE:

开源工具Ghidra的调试模式配置

图3.16 – 重新启动Eclipse IDE

插件是否被整合到Eclipse的菜单栏中,可以通过检查菜单栏查看是否成功:

开源工具Ghidra的调试模式配置

图3.17 – 安装了GhidraDev插件

之后,将安装GhidraDev插件,也可以指定Ghidra安装的位置,以便将其链接到其它的开发项目。 使用GhidraDev | 首选项 | Ghidra安装…选项来处理。

在这种情况下,我有两个Ghidra安装(Ghidra_9.1.1_PUBLIC和Ghidra_9.1.1_PUBLIC-other),其中Ghidra_9.1.1_PUBLIC被选为默认值。 Ghidra安装可以通过单击添加…按钮添加,并通过选择表上的安装并单击删除来删除:

开源工具Ghidra的调试模式配置

图3.18 – 将Ghidra安装目录添加到GhidraDev

在下一节中,将介绍如何使用Ghidra进行调试,这使我们不仅可以识别和修复脚本中的编程错误,还可以逐步跟踪Ghidra的执行。 调试能力在二进制分析中将至关重要,使用调试功能可以了解Ghidra中的所有低级内部细节,以进行更进阶的开发。

原文始发于微信公众号(山石网科安全技术研究院):开源工具Ghidra的调试模式配置

版权声明:admin 发表于 2023年10月31日 上午11:32。
转载请注明:开源工具Ghidra的调试模式配置 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...