### 文章目录
- [@[toc]](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [1. 引言:为什么选择 Ghidra?](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [2. Ghidra 简介:NSA 开源的逆向工程利器](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [2.1 历史背景](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [2.2 核心特性](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [2.3 许可证](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [3. 系统要求与准备工作](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [3.1 硬件要求](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [3.2 软件依赖](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [4. 下载 Ghidra 安装包(含离线方案)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [4.1 官方下载地址(可能找不到,建议github🔍ghidra)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [4.2 文件说明](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [4.3 离线部署建议](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [5. 安装 Java 运行环境(JDK 17+)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [5.1 为什么必须用 JDK?](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [5.2 推荐发行版:Eclipse Temurin (Adoptium)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [Windows 安装步骤:](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [Linux 安装(Ubuntu 示例):](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [macOS 安装:](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [6. 在 Windows 上安装 Ghidra](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [6.1 图形界面安装(推荐)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [6.2 命令行启动(高级用户)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [6.3 创建桌面快捷方式](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [7. 在 Linux 上安装 Ghidra(Ubuntu 示例)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [8. 在 macOS 上安装 Ghidra](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [9. 虚拟机中部署 Ghidra(安全分析环境)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [9.1 环境配置建议](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [9.2 工具链集成](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [9.3 性能优化](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [10. 首次启动与界面概览](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [10.1 创建新项目](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [10.2 主界面布局](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [11. 创建第一个项目:静态分析 Hello World](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [11.1 准备测试文件](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [11.2 导入 Ghidra](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [11.3 查看结果](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [12. 核心功能详解](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [12.1 反汇编(Disassembly)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [12.2 反编译(Decompiler)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [12.3 交叉引用(XREF)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [12.4 字符串分析](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [13. 脚本自动化](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [13.1 Python 脚本示例:列出所有函数](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [13.2 Java 脚本:更高效,适合复杂任务](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [14. 插件扩展](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [14.1 安装插件](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [14.2 推荐插件](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [15. 常见问题排查](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [15.1 启动失败:Java 版本错误](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [15.2 字体乱码(中文/日文)](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [15.3 性能优化](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [16. Ghidra vs IDA Pro](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
- [17. 结语](#文章目录 @[toc] 1. 引言:为什么选择 Ghidra? 2. Ghidra 简介:NSA 开源的逆向工程利器 2.1 历史背景 2.2 核心特性 2.3 许可证 3. 系统要求与准备工作 3.1 硬件要求 3.2 软件依赖 4. 下载 Ghidra 安装包(含离线方案) 4.1 官方下载地址(可能找不到,建议github🔍ghidra) 4.2 文件说明 4.3 离线部署建议 5. 安装 Java 运行环境(JDK 17+) 5.1 为什么必须用 JDK? 5.2 推荐发行版:Eclipse Temurin (Adoptium) Windows 安装步骤: Linux 安装(Ubuntu 示例): macOS 安装: 6. 在 Windows 上安装 Ghidra 6.1 图形界面安装(推荐) 6.2 命令行启动(高级用户) 6.3 创建桌面快捷方式 7. 在 Linux 上安装 Ghidra(Ubuntu 示例) 8. 在 macOS 上安装 Ghidra 9. 虚拟机中部署 Ghidra(安全分析环境) 9.1 环境配置建议 9.2 工具链集成 9.3 性能优化 10. 首次启动与界面概览 10.1 创建新项目 10.2 主界面布局 11. 创建第一个项目:静态分析 Hello World 11.1 准备测试文件 11.2 导入 Ghidra 11.3 查看结果 12. 核心功能详解 12.1 反汇编(Disassembly) 12.2 反编译(Decompiler) 12.3 交叉引用(XREF) 12.4 字符串分析 13. 脚本自动化 13.1 Python 脚本示例:列出所有函数 13.2 Java 脚本:更高效,适合复杂任务 14. 插件扩展 14.1 安装插件 14.2 推荐插件 15. 常见问题排查 15.1 启动失败:Java 版本错误 15.2 字体乱码(中文/日文) 15.3 性能优化 16. Ghidra vs IDA Pro 17. 结语)
1. 引言:为什么选择 Ghidra?

在信息安全、恶意软件分析、漏洞研究和 CTF 竞赛中,逆向工程(Reverse Engineering)是一项核心技能。而要进行高效的二进制分析,一款强大的反汇编工具必不可少。
长期以来,Hex-Rays IDA Pro 凭借其卓越的反编译能力和丰富的插件生态,成为行业标准。然而,其高昂的价格(数千美元)让许多学生、爱好者和小型团队望而却步。
2019 年,美国国家安全局(NSA)做了一件震惊安全圈的大事------开源了其内部使用的逆向工程平台:Ghidra。
Ghidra 是什么?
它是一个功能完整的软件逆向工程框架,支持多架构(x86/x64/ARM/MIPS 等)、提供强大的反编译器、支持协作分析,并且------完全免费、开源、可商用。
无论你是:
- 想学习逆向工程的学生
- 参加 CTF 比赛的选手
- 分析恶意软件的安全研究员
- 审计嵌入式固件的工程师
Ghidra 都是你不可错过的工具。本文将带你从零开始,完整安装、配置并上手 Ghidra,助你迈出逆向分析的第一步。
2. Ghidra 简介:NSA 开源的逆向工程利器
2.1 历史背景
Ghidra 最早由 NSA 内部开发,用于国家级的网络情报分析。2019 年 3 月,在著名黑客组织 WikiLeaks 泄露相关信息后,NSA 主动将其开源,以促进社区发展和透明度。
2.2 核心特性
- 多平台支持:Windows / Linux / macOS
- 多架构反汇编:x86, x86_64, ARM, AARCH64, MIPS, PowerPC, Sparc, Z80 等
- 内置反编译器:将汇编代码转换为类 C 伪代码,效果接近 Hex-Rays
- 图形化调用图:可视化函数调用关系
- 交叉引用(XREF):快速跳转到函数/变量的引用位置
- 脚本支持:Python 和 Java API,支持自动化分析
- 协作功能:多人共享项目(可关闭用于单机)
- 插件系统:社区贡献大量扩展(如 decompiler 改进、格式解析器)
2.3 许可证
Ghidra 采用 Apache License 2.0,意味着:
- 可免费用于个人、教育、商业项目
- 可修改源代码并分发
- 无任何隐藏费用或激活机制
3. 系统要求与准备工作
3.1 硬件要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 双核 2GHz | 四核 3GHz+ |
| 内存 | 4GB RAM | 16GB+(大文件分析需要) |
| 存储 | 2GB 可用空间 | SSD + 10GB+(缓存加速) |
提示:分析大型程序(如 Windows DLL、游戏引擎)时,内存不足会导致卡顿甚至崩溃。
3.2 软件依赖
Ghidra 基于 Java 开发,必须安装 JDK 17 或更高版本(注意:不是 JRE!)。
- JDK(Java Development Kit):包含编译器和运行时,Ghidra 需要它来执行脚本和插件
- JRE (Java Runtime Environment):仅能运行 Java 程序,不满足 Ghidra 要求
常见误区:很多人只装了 JRE,导致 Ghidra 启动失败。
4. 下载 Ghidra 安装包(含离线方案)
4.1 官方下载地址(可能找不到,建议github🔍ghidra)
前往 Ghidra 官网:https://ghidra-sre.org/
点击 "Download Ghidra" 按钮,你会看到类似文件名:
ghidra_11.2_PUBLIC_20241219.zip
4.2 文件说明
.zip格式:跨平台通用,解压即用PUBLIC:表示这是公开版本(NSA 还有内部增强版,未开源)- 版本号:
11.2表示主版本,后续数字是发布日期
4.3 离线部署建议
如果你需要在无网络的虚拟机中使用 Ghidra(如恶意软件分析环境):
- 在有网络的主机下载
ghidra_*.zip - 同时下载 JDK 17+ 的 .msi 或 .tar.gz 包(见下一节)
- 将两个文件复制到 U 盘或共享文件夹
- 在虚拟机中先安装 JDK,再解压 Ghidra
✅ 优势:整个过程无需联网,避免样本外泄风险。
5. 安装 Java 运行环境(JDK 17+)
5.1 为什么必须用 JDK?
Ghidra 的脚本引擎(特别是 Java 脚本)需要 JDK 中的 tools.jar 和编译器。JRE 无法满足此需求。
5.2 推荐发行版:Eclipse Temurin (Adoptium)
- 免费、开源、长期支持(LTS)
- 无 Oracle 账号限制
- 下载地址:https://adoptium.net/
Windows 安装步骤:
-
选择 Version: 17 , OS: Windows , Architecture: x64 , Package Type: .msi
-
下载
OpenJDK17U-jdk_x64_windows_hotspot_*.msi -
双击安装 → 自动配置
JAVA_HOME和PATH -
验证安装:
cmdjava -version javac -version
Linux 安装(Ubuntu 示例):
bash
# 添加仓库
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo gpg --dearmor -o /usr/share/keyrings/adoptium.gpg
echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
# 安装
sudo apt update
sudo apt install temurin-17-jdk
# 验证
java -version
macOS 安装:
-
使用 Homebrew:
bashbrew install openjdk@17 sudo ln -sfn /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
6. 在 Windows 上安装 Ghidra
6.1 图形界面安装(推荐)
- 将下载的
ghidra_*.zip解压到任意目录(如C:\Tools\ghidra) 不要放在带空格或中文路径(如Program Files),可能引发脚本错误 - 进入解压目录,双击
ghidraRun.bat - 首次启动会提示选择工作目录(用于存储项目),建议设为
D:\GhidraProjects
6.2 命令行启动(高级用户)
cmd
cd C:\Tools\ghidra
.\ghidraRun.bat
6.3 创建桌面快捷方式
- 右键
ghidraRun.bat→ "发送到" → "桌面快捷方式" - 右键桌面图标 → "属性" → "快捷方式" → 修改"起始位置"为 Ghidra 目录
7. 在 Linux 上安装 Ghidra(Ubuntu 示例)
-
解压 Ghidra:
bashunzip ghidra_*.zip -d ~/tools/ -
赋予执行权限:
bashchmod +x ~/tools/ghidra_*/ghidraRun -
启动:
bash~/tools/ghidra_*/ghidraRun -
(可选)添加到 PATH:
bashecho 'export PATH=$PATH:~/tools/ghidra_11.2_PUBLIC' >> ~/.bashrc source ~/.bashrc
提示:若遇到图形界面问题,确保已安装
libxtst6:
bashsudo apt install libxtst6
8. 在 macOS 上安装 Ghidra
-
解压
.zip文件到Applications或任意目录 -
打开终端,进入 Ghidra 目录:
bashcd /Applications/ghidra_11.2_PUBLIC -
启动:
bash./ghidraRun -
首次运行可能提示"无法验证开发者",需在 系统设置 → 隐私与安全性 中允许
Apple Silicon(M1/M2)用户:Ghidra 通过 Rosetta 2 运行,性能略有损失,但功能完整。
9. 虚拟机中部署 Ghidra(安全分析环境)
9.1 环境配置建议
- 操作系统:Windows 10 虚拟机(禁用自动更新)
- 网络:Host-Only 模式(禁止外网访问)
- 快照:安装完成后创建快照,便于回滚
9.2 工具链集成
在虚拟机中同时部署:
- Ghidra(静态分析)
- x64dbg(动态调试)
- PE-bear(PE 文件结构查看)
- Process Monitor(行为监控)
9.3 性能优化
- 分配至少 4GB 内存给虚拟机
- 启用虚拟化加速(Intel VT-x / AMD-V)
- 将 Ghidra 项目目录放在 SSD 上
10. 首次启动与界面概览
启动 Ghidra 后,你会看到 Project Window(项目窗口):
10.1 创建新项目
- 点击 "New Project"
- 选择 "Non-Shared Project"(单机使用)
- 设置项目名称和存储路径
10.2 主界面布局
导入一个二进制文件后,主窗口分为多个面板:
- Symbol Tree:函数、全局变量列表
- Listing:反汇编代码视图
- Decompiler:反编译伪代码(核心功能!)
- Program Trees:段、节信息
- Tool Palette:常用工具(字符串、搜索等)
快捷键:按
Ctrl+D在 Listing 和 Decompiler 之间同步滚动。
11. 创建第一个项目:静态分析 Hello World
11.1 准备测试文件
编写一个简单的 C 程序 hello.c:
c
#include <stdio.h>
int main() {
printf("Hello, Ghidra!\n");
return 0;
}
编译(Windows + MinGW):
bash
gcc hello.c -o hello.exe
11.2 导入 Ghidra
- 在 Project Window 点击 "Import File"
- 选择
hello.exe - 分析选项保持默认 → 点击 "Analyze"
11.3 查看结果
-
在 Symbol Tree 中展开
Functions -
双击
main,右侧 Listing 显示汇编,Decompiler 显示:cint main(void) { puts("Hello, Ghidra!"); return 0; }
成功!Ghidra 自动识别了字符串和函数逻辑。
12. 核心功能详解
12.1 反汇编(Disassembly)
- 支持多种指令集语法(Intel / AT&T)
- 可重命名函数/变量(右键 → Rename)
12.2 反编译(Decompiler)
- 按
F5快速打开 Decompiler - 支持类型重建(右键变量 → Set Data Type)
12.3 交叉引用(XREF)
- 在变量/函数上按
X键,查看所有引用位置 - 极大提升代码追踪效率
12.4 字符串分析
- 点击 "Search" → "For Strings"
- 自动提取所有可打印字符串(包括加密字符串)
13. 脚本自动化
Ghidra 支持两种脚本语言:
13.1 Python 脚本示例:列出所有函数
python
from ghidra.app.script import GhidraScript
script = GhidraScript()
func_manager = currentProgram.getFunctionManager()
for func in func_manager.getFunctions(True):
print(func.getName())
13.2 Java 脚本:更高效,适合复杂任务
- 路径:
Ghidra/Features/Base/src/main/java/ghidra/app/script/ - 编译后放入
scripts目录即可使用
14. 插件扩展
14.1 安装插件
- 下载插件(如 Ghidra-Cpp-Class-Analyzer)
- 解压到
Ghidra/Extensions/ - 重启 Ghidra → Tools → Extension Manager → 启用插件
14.2 推荐插件
- BinExport:导出到 IDA 或 BinDiff
- Ghidra-Cpp-Class-Analyzer:恢复 C++ 类结构
- ghidra-fidb:函数识别数据库
15. 常见问题排查
15.1 启动失败:Java 版本错误
- 错误:
UnsupportedClassVersionError - 解决:安装 JDK 17+
15.2 字体乱码(中文/日文)
- 编辑
support/launch.properties - 添加:
VMARGS=-Dfile.encoding=UTF-8
15.3 性能优化
-
增加 JVM 内存:修改
support/launch.propertiesVMARGS=-Xmx8g
16. Ghidra vs IDA Pro
| 功能 | Ghidra | IDA Pro |
|---|---|---|
| 价格 | 免费 | $$$$ |
| 反编译器 | 内置(强) | Hex-Rays(极强) |
| 调试器 | 有限 | 专业级 |
| 脚本 | Python/Java | Python/IDC |
| 协作 | 支持 | 需额外模块 |
| 学习曲线 | 中等 | 陡峭 |
结论:Ghidra 是 IDA 最佳免费替代品,尤其适合学习和非商业场景。
17. 结语
Ghidra 的出现 democratized(民主化)了逆向工程领域。无论你身处何地、预算多少,现在都可以使用国家级的分析工具。
通过本教程,你已经完成了从安装到首次分析的全过程。接下来,尝试分析更复杂的程序------一个 crackme、一个恶意软件样本,或一个嵌入式固件。
记住:逆向工程不仅是技术,更是艺术。耐心、逻辑和好奇心,才是你最强的"工具"。
Happy Reversing!
现在的AI工具早就不是当年那种黑乎乎的命令行界面了。你不需要懂代码,不需要是美术生,甚至不需要买什么昂贵的软件。只要你会打字、会刷手机,就能用AI帮你干活。脉脉搞的AMA AI创作者活动第二期,说白了就是给咱们这些"技术小白"开的一个训练营,门槛低到地板上了。
普通刷手机是消费,你看短视频、看新闻,看完了除了乐呵一下,啥也没留下。但在AMA活动里刷,是生产------你在建立连接(认识创作者)、在积累资产(积分、写作经验)、在涨本事(真的学会了用工具)。
别再当看客了,AI这趟车,现在上车还不晚。咱们AMA活动里见 👉 AMA活动!