Ghidra反编译工具的安装与使用介绍

1,269 阅读2分钟

Ghidra简介

Ghidra是RSA Conference 2019上NSA发布的一个开源的逆向分析工具,可以分析ELF、APK、JAR等文件。优点是免费、好上手用于替代昂贵的IDA Pro工具。缺点是对较大的文件反编译速度比IDA Pro慢。该分析工具使用Java开发,跨平台能力强,可以在Windows、macOS和Linux系统上运行,界面使用相对友好。Ghidra内置了Jython解释器,因此可以使用Java或Python开发自己的Ghidra插件或者脚本。

下载与安装

硬件条件:4GB内存;1GB硬盘空间

软件条件:Java 11+

  • 下载Ghidra

下载链接

image

下载安装包后,本地解压,解压后不用进行复杂的配置,保障JDK-11以上版本就可以,解压后的安装目录如下

image

双击ghidraRun脚本后,Mac上出现无法运行提示,需要在系统设置-->隐私与安全性允许ghidraRun运行

image

启动后的界面,可以创建一个工作目录

image

使用方法

导入文件

通过File->ImportFile导入要反编译的ELF(so)文件

image

image

双击libxxx.so文件进入反编译界面,至此可以开始对ELF文件进行分析

image

常用功能介绍

对ELF文件逆向分析

  • 查看ELF信息

image

  • 查看Segment信息

image

  • 函数反编译伪代码查看

右侧是类似IDA Pro F5功能的伪代码,点击对应函数名,或C(f)按键、或command+E快捷键可以查看伪代码

image

函数搜索及调用树和函数内调用函数

image

  • 函数代码跳转分析

点击DisplayFunctionGraph,查看函数跳转汇编流程

image

  • 脚本功能

点击快捷工具栏的脚本管理按钮可以看到有很多辅助分析的Java、py脚本:选择脚本可以直接运行

image

  • 符号表查看与搜索

image

符号表引用查看与搜索

image

  • 文件对比分析

可以对elf文件进行对比分析

image

image

  • 字符串搜索

image

  • 地址跳转

汇编信息界面按“G”会弹出下面输入框,输入地址可以跳转到对应地址

image

对Android APK逆向分析

导入一个APK文件,文件名为app-cn-noasan-inner-debug.apk。选择File > Import File >app-debug.apk,然后选择Batch来引入所有文件和目录,或者点击File > Batch Import也可以。然后将Depth Limit设置为一个较高的值(10以上),点击rescan来搜索类文件

image

对dex/lib库文件分析

qqqq.png

查看对应汇编以及反编译的代码

image

相关文档

zhuanlan.zhihu.com/p/59637690

www.secrss.com/articles/88…

github.com/firmianay/C…

www.freebuf.com/articles/mo…

cloud.tencent.com/developer/a…

blog.csdn.net/qq\_4589484…