Premiumcompound7090/reverse-engineering-gcc-gpp-training
GitHub: Premiumcompound7090/reverse-engineering-gcc-gpp-training
一门面向Linux GCC/G++二进制文件的系统化逆向工程培训课程,涵盖从汇编基础到恶意软件分析与自动化的完整学习路径。
Stars: 1 | Forks: 0
# 🛡️ reverse-engineering-gcc-gpp-training - 掌握软件安全的逆向工程
[https://img.shields.io/badge/Download-Course-blue.svg](https://github.com/Premiumcompound7090/reverse-engineering-gcc-gpp-training)
本代码库包含了一门完整的逆向工程培训课程。您将学习阅读计算机代码、分析软件功能以及理解二进制文件。本课程共包含 36 个章节。从基础的汇编语言开始,逐步深入到高级恶意软件分析。
## 🎯 您将学到什么
逆向工程可以揭示程序在没有原始源代码时的运行机制。本课程将教您如何深入分析 Linux 二进制文件。您将使用 Ghidra、GDB 和 Frida 等工具。这些工具将帮助您看透软件背后的逻辑。
本课程涵盖以下主题:
- x86-64 汇编语言
- 使用 Ghidra 进行反编译
- 使用 GDB 进行调试
- 使用 Frida 进行动态追踪
- 使用 ImHex 检查文件
- 使用 YARA 编写检测规则
- 使用 Pwntools 和 angr 实现自动化
除了标准的 GCC 和 G++ 二进制文件外,课程还包含关于 .NET、Rust 和 Go 的章节。36 个章节中的每一章都包含练习和完整的参考答案,供您检查学习成果。
## 🛠️ 系统要求
要在 Windows 上运行这些课程,您需要具备以下条件:
- 一台安装了 Windows 10 或 Windows 11 的电脑。
- 至少 8 GB 的内存(RAM)。
- 虚拟机软件,例如 VirtualBox 或 VMware。
- 在虚拟机中安装 Linux 发行版,如 Ubuntu。
您需要虚拟机是因为本课程中的工具在 Linux 上运行效果最佳。您将在这个安全、隔离的环境中进行实验练习。
## 📥 获取资料
您可以从主代码库获取所有课程文件。
[访问此页面下载](https://github.com/Premiumcompound7090/reverse-engineering-gcc-gpp-training)
点击页面上的绿色“Code”按钮。然后选择“Download ZIP”。将此文件夹保存到您的桌面。右键单击该文件并选择“提取所有内容”。现在,您的电脑上已经拥有了完整的课程资料。
## 🚀 环境配置
1. 从官方网站安装 VirtualBox。
2. 下载 Ubuntu ISO 镜像。
3. 使用此镜像在 VirtualBox 中创建一个新的虚拟机。
4. 在您新的 Linux 桌面中打开终端。
5. 使用包管理器安装所需的工具:Ghidra、GDB 和 Frida。
6. 将提取的课程文件夹复制到您的虚拟机中。
## 📖 课程学习指南
从第 1 章开始。首先阅读文本文件。按照说明使用提供的二进制示例进行练习。
每一章都建立在前一章的基础之上。在课程初期请不要跳过章节。理解汇编语言对于后续的恶意软件分析等模块至关重要。
保持您的作业条理清晰。在完成练习时为每个章节创建一个文件夹。请务必先尝试自己解决问题,然后再使用参考答案。这种方法能更快地提升您的技能。
## 🔍 理解相关工具
- **Ghidra**:该程序将机器代码还原为可读的逻辑。您可以使用它来可视化程序的结构。
- **GDB**:此工具可逐步运行程序。您可以在此过程中观察内存中数据的变化。
- **Frida**:此工具可在程序运行时修改其行为。它可以帮助您查看隐藏数据或跳过安全检查。
- **ImHex**:这是一个十六进制编辑器。它显示文件的原始字节。帮助您识别文件类型和隐藏数据。
- **YARA**:此工具用于搜索文件中的模式。安全团队使用它来查找恶意软件的痕迹。
## 🛡️ 安全学习
逆向工程通常涉及分析恶意代码。请在虚拟机内执行所有练习。切勿在您的物理 Windows 系统上运行示例。虚拟机可确保任何有害软件都被限制在客户机环境中。如果您犯了错误,可以将虚拟机重置为干净的状态。
## 💡 常见问题排查
如果某个工具无法运行,请检查其版本。许多工具需要特定版本的 Python。请使用课程文件夹中的说明检查当前版本。确保您的虚拟机已连接互联网,以便安装必要的依赖项。
如果您在终端中遇到错误:
1. 在网络浏览器中搜索该错误信息。
2. 检查 GitHub 代码库中的“Issues”选项卡,查看是否有类似报告。
3. 将您的工具更新到最新版本。
大多数问题都源于缺少库文件。安装适用于您的 Linux 版本的通用开发包即可解决这些问题。
## 🎓 后续步骤
完成这 36 章的学习后,您将具备坚实的二进制分析基础。您可以将这些技能应用于夺旗赛(CTF)、软件审计或安全研究中。持续在不同类型的文件上进行练习以保持您的技能水平。复习 Rust 和 Go 的章节,了解现代内存安全语言如何改变逆向工程的流程。
标签:angr, C++内部机制, DAST, DNS信息、DNS暴力破解, Docker支持, ELF文件结构, Frida, G++, GCC, GDB, Ghidra, Go语言, ImHex, Pwntools, Rust, TLS抓取, URL提取, VirtualBox, VMware, Windows 10, Windows 11, x86-64, YARA规则, 二进制分析, 云安全运维, 云资产清单, 动态追踪, 反编译, 安全培训, 客户端加密, 快速连接, 恶意软件分析, 情报收集, 汇编语言, 漏洞研究, 生成式AI安全, 程序破解, 网络安全, 网络流量审计, 自动化分析, 虚拟机, 课程资源, 调试, 跨站脚本, 软件安全, 逆向工具, 逆向工程, 隐私保护