跟羽夏学 Ghidra ——初识 - 寂静的羽夏
source link: https://www.cnblogs.com/wingsummer/p/16685486.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
此系列是本人一个字一个字码出来的,包括示例和实验截图。本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正。 如有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。
你如果是从中间插过来看的,请仔细阅读 跟羽夏学 Ghidra ——简述 ,方便学习本教程。请认准 博客园 的 寂静的羽夏 ,目前仅在该平台发布。
安装软件的第一眼,我们首先看一下它的软件目录结构:
包含有关Ghidra
和如何使用它的支持文档,该目录包括两个子目录。首先,GhidraClass
子目录提供教学内容,帮助了解Ghidra
。其次,languages
子目录描述了Ghidra
的处理器规范语言SLEIGH
。
Extensions
包含有用的预构建扩展以及编写Ghidra
扩展的重要内容和信息。
构成Ghidra
框架一部分的一些组件不是由Ghidra
团队开发的,而是由GPL
下发布的其他代码组成。GPL
目录包含与此内容关联的文件,包括许可信息。
licenses
包含概述Ghidra
各种第三方组件的适当和合法使用的文件。
server
支持Ghidra
服务器的安装,这有助于协作SRE
。本系列教程不会涉及该相关内容。
support
作为Ghidra
各种功能的集合。此外,如果您想进一步自定义您的工作环境(例如,创建Ghidra
启动脚本的快捷方式),也可以在这里找到Ghidra
图标。
当我们首次启动Ghidra
时,软件应该是这样滴:
Tip
是该软件的提示信息,以帮助使用者入门使用该软件。把它关掉,下面我们正式开始如何使用该软件。
Ghidra
不像IDA
,如果进行逆向操作,需要创建项目Project
:
点击New Project
,下面开始新建项目:
默认非共享项目,下一步:
然后我们需要输入项目名字,这个你随意,我输入WingSummerReverse
,点击结束按钮,项目就创建好了:
榆次同时,在项目目录路径下,会创建一个项目名字+.rep
的文件夹:
下面我们需要添加编译好的示例文件tutorial
,如下所示:
点击Import File
之后,我们选择文件,点击确定后会得到如下对话框:
我们可以得知,该文件是ELF
格式,对于该部分,我重点介绍一下:
Language
字段允许您指定反汇编过程中应使用的处理器模块。Ghidra
语言/编译器规范可以由处理器类型、大小端规范(LE
/BE
)、位值(16
/32
/64
)、处理器变量和编译器ID
(例如ARM:LE:32:v7:default
)组成。在大多数情况下,Ghidra
将根据从可执行文件头读取的信息选择适当的处理器,不需要我们进行更改。
Destination Folder
字段用于选择将显示新导入文件的项目文件夹。默认情况下显示顶级项目文件夹,但可以添加子文件夹来组织项目中导入的程序。
Program Name
是Ghidra
用来指代项目中导入的二进制文件的名称,包括在项目窗口中显示的名称。它默认为导入文件的名称,但可以更改为更具描述性的名称,不要被它的意思所迷惑。
点击确定,待Ghidra
简单分析后,就会获得该文件的相关信息:
如果你加载的文件是ShellCode
的纯二进制代码文件,你会碰到这种情况:
这就需要自行指定Language
(该文件由“羽云十六进制编辑器”的汇编器生成Intel
的32
位汇编保存的文件):
指定完,我们也可以指定基址等相关信息:
下面我们将开始入门如何逆向了,我们双击要逆向的内容:
可以看到Running Tools
多了一个龙头,也就是所谓的CodeBrowser
对话框。
首次,Ghidra
会询问我们是否分析,直接Yes
:
然后又弹出一个窗体,这个是用来选择要分析的条目,如果可执行文件过大,就需要挑几个最关心的部分,直接默认即可。
由于软件特别小,很快就能分析完了,如下图所示:
从此,我们就踏入了使用Ghidra
逆向的第一步。在之后的博文,我们将逐步揭开Ghidra
的神秘面纱,熟悉并熟练使用它。下一篇将是十分重要的一部分,学会了它+训练,你将掌握了Ghidra
的使用,并具有能够分析的二进制基础能力。
跟羽夏学 Ghidra ——窗口
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK