jsnchez16/ReverseEngineering_MalwareAnalysis
GitHub: jsnchez16/ReverseEngineering_MalwareAnalysis
记录使用多种反汇编与调试工具进行逆向工程、脱壳和恶意软件分析实战案例的文档集合。
Stars: 0 | Forks: 0
# 逆向工程与恶意软件分析实验室
本项目集主要关注**逆向工程、静态与动态分析、二进制文件检查、脱壳技术以及恶意软件初步分析**。
本仓库记录了使用 **Ghidra、IDA、x32dbg/x64dbg、Radare2、ILSpy、OpenSSL 风格的命令行工作流、strings、UPX、Dependency Walker 以及 Linux 取证实用工具**对 CrackMe 挑战和类似恶意软件样本进行的一系列实际分析过程。
其目的是展示以下网络安全领域的动手实践技能:
- Windows PE 和 Linux ELF 二进制文件的逆向工程。
- 密码验证例程的分析。
- 反汇编器、反编译器和调试器的使用。
- 识别加壳或混淆的二进制文件。
- 提取字符串、常量和特征指标。
- 基础恶意软件分类与行为解释。
- 分析过程的技术文档编写。
## 仓库内容
```
.
├── README.md
├── docs/
│ └── CASE_STUDIES.md
├── assets/
│ └── screenshots/
│ ├── crackme0-ida-password-string.png
│ ├── crackme0-x64dbg-comparison-flow.png
│ ├── crackme1-radare2-main-analysis.png
│ ├── crackme1-x32dbg-validation-routine.png
│ ├── crackme2-ilspy-dotnet-analysis.png
│ ├── crackme3-upx-unpacking.png
│ ├── crackme3-ida-unpacked-validation.png
│ ├── crackme4-ghidra-strcmp.png
│ ├── wannacry-killswitch-strings.png
│ ├── crackme01-ghidra-xor-routine.png
│ └── rasnom-dotnet-header-analysis.png
└── original-reports/
├── reverseEngineering_CrackMe_Analysis.pdf
└── reverseEngineering_MalwareAnalysis.pdf
```
`original-reports/` 文件夹可用于保存原始的 PDF 报告。Markdown 文件则提供了更简洁、对招聘人员友好且易于 GitHub 阅读的工作总结。
## 案例研究
| 案例研究 | 平台 / 格式 | 主要关注点 | 使用的工具 |
|---|---:|---|---|
| CrackMe0 | Windows PE32 | 静态字符串发现与调试器辅助的验证流程 | IDA, x64dbg |
| CrackMe1 | Windows PE32 GUI | 密码验证例程与寄存器级调试 | Radare2, x32dbg |
| CrackMe2 | .NET 可执行文件 | 反编译与生成密码逻辑的重建 | IDA, ILSpy |
| CrackMe3 | Windows PE64 | 加壳二进制文件分析、UPX 脱壳及脱壳后的验证 | Ghidra, IDA, UPX, strings, Dependency Walker |
| CrackMe4 | Linux ELF32 | ELF 分析与直接验证例程发现 | file, Ghidra, Linux CLI |
| WannaCry 样本 | Windows 恶意软件 | 提取开关域名静态特征 | strings, grep, 哈希计算 |
| CrackMe01 | Windows PE32 | 基于 XOR 的密码验证与字节级还原 | Ghidra, Python |
| Rasnom.danger | Windows PE / 类 .NET 样本 | 损坏的 CLR 元数据、原始 MSIL 检查与勒索软件锁定器分类 | Radare2, xxd, rabin2, strings |
完整的技术说明请参见:
[docs/CASE_STUDIES.md](docs/CASE_STUDIES.md)
## 方法论
本分析遵循结构化的工作流程:
1. **初始分类**
- 识别文件类型和架构。
- 检查二进制文件是 PE、ELF、.NET、加壳文件还是动态链接的。
- 提取可见字符串和可疑指标。
2. **静态分析**
- 检查导入表、节区和嵌入的字符串。
- 定位候选的验证例程。
- 审查反汇编代码和反编译后的伪代码。
3. **动态分析**
- 在受控的实验室环境中执行样本。
- 在输入、比较和分支逻辑周围设置断点。
- 跟踪寄存器、栈变量和控制流。
4. **脱壳 / 去混淆**
- 检测壳程序或异常的节区布局。
- 比较脱壳前后的字符串。
- 使用反汇编器和反编译器重新分析脱壳后的二进制文件。
5. **文档编写**
- 解释推理过程。
- 将相关指令映射到具体行为。
- 包含相关证据的屏幕截图。
- 总结每个样本的最终结论。
## 工具
| 类别 | 工具 |
|---|---|
| 反汇编器 / 反编译器 | Ghidra, IDA, ILSpy |
| 调试器 | x32dbg, x64dbg |
| 二进制分析 | Radare2, rabin2, file, strings, xxd |
| 加壳 / 脱壳 | UPX, RDG Packer Detector, PEiD |
| 依赖项检查 | Dependency Walker |
| 脚本编写 | Python |
| 平台 | Windows, Kali Linux |
## 展示的技能
本仓库展示了对以下方面的实践知识:
- PE 和 ELF 二进制文件分析。
- x86 和 x86-64 逆向工程基础知识。
- 静态与动态分析工作流。
- 寄存器、栈和内存检查。
- 条件分支分析。
- 密码验证例程重建。
- .NET 反编译与元数据检查。
- UPX 脱壳及脱壳前后的分析。
- 基于 XOR 的解码。
- 恶意软件分类与指标提取。
- 网络安全调查的技术报告编写。
## 屏幕截图
屏幕截图应存储在:
```
assets/screenshots/
```
建议添加的屏幕截图:
| 屏幕截图文件 | 捕获内容 |
|---|---|
| `crackme0-ida-password-string.png` | IDA 显示硬编码的密码字符串以及来自 `main` 的引用。 |
| `crackme0-x64dbg-comparison-flow.png` | x64dbg 显示用户输入、预期字符串和条件比较。 |
| `crackme1-radare2-main-analysis.png` | Radare2 在 `main` 或验证例程附近的可视化模式。 |
| `crackme1-x32dbg-validation-routine.png` | x32dbg 显示用户输入与预期值之间的比较。 |
| `crackme2-ilspy-dotnet-analysis.png` | ILSpy 显示重建的 .NET 验证逻辑。 |
| `crackme3-upx-unpacking.png` | UPX 脱壳输出和/或指示 UPX 节区的字符串。 |
| `crackme3-ida-unpacked-validation.png` | 脱壳后的 IDA/Ghidra,显示恢复的验证逻辑。 |
| `crackme4-ghidra-strcmp.png` | Ghidra 显示 `strcmp` 调用和预期的密码。 |
| `wannacry-killswitch-strings.png` | 终端输出显示使用 `strings` 提取的开关域名。 |
| `crackme01-ghidra-xor-routine.png` | Ghidra 显示 XOR 循环和加密的密码缓冲区。 |
| `rasnom-dotnet-header-analysis.png` | Radare2/xxd 证据显示损坏或异常的 CLR 元数据。 |
## 安全与法律声明
所有分析必须在隔离的实验室环境中进行。请勿在主机系统上执行未知的二进制文件。
本仓库不提供恶意软件二进制文件、漏洞利用代码或操作性载荷。内容仅限于防御性分析、逆向工程笔记和教育文档。
## 原始报告
原始 PDF 报告可作为支持材料保留:
- `original-reports/reverseEngineering_CrackMe_Analysis.pdf`
- `original-reports/reverseEngineering_MalwareAnalysis.pdf`
Markdown 文档旨在使项目更易于直接在 GitHub 上查阅。
标签:AD攻击面, CrackMe, DAST, DNS 反向解析, ELF文件分析, Ghidra, IDA Pro, ILSpy, IP 地址批量处理, .NET逆向, PE文件分析, Radare2, TLS指纹, UPX, URL提取, WannaCry, Wayback Machine, x32dbg, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 加壳分析, 勒索软件分析, 反汇编, 反编译, 字符串提取, 安全基线, 安全实验室, 安全工具集, 安全项目, 审计工具, 恶意软件分析, 情报收集, 教学环境, 无线安全, 杀软绕过, 混淆分析, 漏洞研究, 网络信息收集, 网络安全, 脱壳, 调试, 逆向工具, 逆向工程, 隐私保护, 静态分析