软件逆向工程,有了这东西,什么软件都能copy过来!
!
!
Ghidra 是一个由美帝国家安全局研究局创建和维护的软件逆向工程 (SRE) 框架 。该框架包括一套功能齐全的高端软件分析工具,使用户能够在包括 Windows、macOS 和 Linux 在内的各种平台上分析编译的代码。功能包括反汇编、汇编、反编译、绘图和脚本编写,以及数百种其他功能。Ghidra 支持多种处理器指令集和可执行格式,并且可以在用户交互和自动化模式下运行。用户还可以使用 Java 或 Python 开发自己的 Ghidra 扩展组件和/或脚本。
它是一套功能强大的工具,用于分析编译后的代码,支持多种操作系统平台,包括 Windows、macOS 和 Linux。Ghidra 的用途主要包括以下几个方面:

1. 安全研究:安全研究人员可以使用 Ghidra 来分析恶意软件,理解其行为和功能,以及如何防御或缓解其影响。
2. 软件审计:开发人员和安全审计人员可以使用 Ghidra 来审计软件的安全性,检查代码中可能存在的漏洞和弱点。
3. 逆向工程:逆向工程师可以利用 Ghidra 来对软件进行逆向工程,以理解其工作原理,这有助于创建兼容性更好的软件或进行技术复制。
4. 漏洞挖掘:安全研究人员可以使用 Ghidra 来挖掘软件中的安全漏洞,以便开发相应的补丁或缓解措施。
5. 软件兼容性分析:Ghidra 可以帮助分析不同操作系统上的软件兼容性问题,确保软件能够在不同的环境中正常运行。
6. 教育和研究:教育机构中的学生和研究人员可以利用 Ghidra 来学习软件逆向工程的概念和技术,以及进行相关的研究工作。
7. 法律执法:执法机构可能使用 Ghidra 来分析涉嫌违法的软件,以收集证据或进行调查。
Ghidra 的功能涵盖了反汇编、反编译、动态分析、脚本编写等多个方面,使其成为一个多功能的工具集,适用于各种软件分析需求。由于它是开源的,因此它也促进了全球安全研究社区的协作和知识共享。
Ghidra 的设计目的是为了提供一套先进的分析工具,帮助安全研究人员理解编译后的代码,不管这些代码是在哪种操作系统上运行的。它支持多种文件格式,包括但不限于可执行文件、库、和固件镜像,并且可以用于分析二进制文件、反汇编、调试以及进行各种代码级别的分析。
Ghidra 的特点包括:
1. 平台兼容性 :它能够在 Windows、macOS、Linux 等不同的操作系统上运行。
2. 插件架构 :支持插件,以便扩展其功能。
3. 脚本支持 :可以通过脚本自动化任务。
4. 强大的分析能力 :提供反汇编、反编译、动态分析等高级功能。
5. 用户社区 :作为一个开源项目,Ghidra 拥有一个活跃的社区,不断有新的工具和功能被集成。
Ghidra 的开源性质使得它受到全球安全研究人员的欢迎,因为它不仅提供了强大的分析能力,而且还能够根据用户的需求进行定制和扩展。美帝国家安全局通过维护和开发 Ghidra,旨在帮助提高软件的安全性,同时也反映了开源社区在提高软件透明度和安全性方面所发挥的重要作用。
安装要安装官方预构建的多平台 Ghidra 版本:
安装JDK 17 64 位下载 Ghidra发行文件提取 Ghidra 发布文件启动 Ghidra:(./ghidraRun或ghidraRun.bat对于 Windows)有关安装和运行 Ghidra 版本的其他信息和故障排除提示,请参阅docs/InstallationGuide.html可在提取的 Ghidra 版本目录中找到的内容。
建造要从此源存储库为您的平台创建最新的开发版本:
安装构建工具:JDK 17 64 位摇篮 7.3+make、gcc 和 g++(仅限 Linux/macOS)安装了以下组件的 Microsoft Visual Studio 2017+ 或Microsoft C++ 构建工具(仅限 Windows):MSVC视窗软件开发工具包C++ ATL下载并解压源码:从 GitHub 下载
unzip ghidra-mastercd ghidra-master
下载执行文件:
从 GitHub 下载
https://github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_11.0_build
$ unzip ghidra_11.0_PUBLIC_20231222.zip
进入解压缩后的目录:
$ cd ghidra_11.0_PUBLIC
执行ghidraRun
$ ./ghidraRun
但是会报以下错误:
$ ./ghidraRun
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
JDK 17+ (64-bit) could not be found and must be manually chosen!
Enter path to JDK home directory (ENTER for dialog):
从错误信息可以知道执行程序时没有找到JDK,该问题可通过安装JDK即可解决:
$ sudo apt-get install default-jdk
再次运行ghidraRun,即可正常运行。
至此就可以看到ghidra的图形界面,就可以导入二进制文件或应用程序进行逆向工程。
github地址
https://github.com/NationalSecurityAgency/ghidra