JangraShivam/MALWARE-ANALYSIS-TOOLKIT
GitHub: JangraShivam/MALWARE-ANALYSIS-TOOLKIT
一个用C++20从头实现的恶意软件分析工具包,通过自建PE解析器深入解析Windows可执行文件格式,为静态和动态分析奠定基础。
Stars: 0 | Forks: 0
# 恶意软件分析工具包
一个从头开始构建的现代 C++ 恶意软件分析工具包,旨在深入理解可移植可执行(PE)格式、Windows 内部机制和二进制分析技术。
本项目专注于正确性、清晰的架构和教育价值,而不是依赖现有的解析库。每一个解析器和工具都是基于基本原理从头实现的,以更深入地理解 Windows 可执行文件的结构。
## 当前功能
### PE 解析器
* DOS Header 解析与验证
* PE 签名验证
* COFF Header 解析与验证
* Optional Header 解析
* 同时支持 **PE32** 和 **PE32+**
* 统一的 **Normalized Optional Header** 表示
* 通用的二进制读取工具
* 使用 `static_assert` 进行编译时结构验证
## 设计目标
本项目围绕以下几个核心原则进行设计:
* **单一职责** – 每个解析器只负责一种结构。
* **规范化** – 将 PE32 和 PE32+ 转换为通用的内部表示,以消除重复逻辑。
* **强验证** – 尽早检测格式错误的可执行文件,并提供描述性的异常信息。
* **现代 C++** – 使用类型安全、RAII、编译时验证和清晰的抽象。
* **可扩展性** – 易于添加新的解析器,而无需修改现有组件。
## 项目结构
```
include/
├── pe/
│ ├── dos_header.hpp
│ ├── coff_header.hpp
│ ├── optional_header.hpp
│ └── error.hpp
src/
├── pe/
│ ├── dos_header.cpp
│ ├── coff_header.cpp
│ ├── optional_header.cpp
│ └── pe_parser.cpp
```
## 路线图
### 核心 PE 解析
* [x] DOS Header
* [x] PE Signature
* [x] COFF Header
* [x] Optional Header
* [ ] Section Headers
* [ ] RVA ↔ File Offset 转换
* [ ] Data Directory 解析
### Data 目录
* [ ] Import Table
* [ ] Export Table
* [ ] Resource Directory
* [ ] Base Relocations
* [ ] TLS Directory
* [ ] Debug Directory
* [ ] Exception Directory
* [ ] Load Configuration
* [ ] Bound Imports
* [ ] Delay Imports
### 静态分析
* [ ] Section 分析
* [ ] 熵值计算
* [ ] 可疑 Section 检测
* [ ] Import 分析
* [ ] Export 分析
* [ ] 字符串提取
* [ ] 哈希生成(MD5、SHA-1、SHA-256)
* [ ] YARA 集成
### 动态分析(未来规划)
* [ ] 进程监控
* [ ] API 追踪
* [ ] 内存检查
* [ ] DLL 监控
* [ ] 注册表监控
* [ ] 网络活动分析
## 为什么做这个项目?
大多数 PE 解析库都掩盖了可执行文件格式的具体细节。
本项目有意避开这些抽象,以便更深入地理解以下内容:
* Windows 可执行文件加载
* 可移植可执行(PE)文件内部机制
* 二进制解析
* 恶意软件分析基础
* 现代 C++ 软件架构
## 技术栈
* C++20
* CMake(计划中)
* 现代 STL
* Git
## 状态
**正在积极开发中。**
目前的重点是构建一个健壮且可扩展的 PE 解析器,这将成为一个完整恶意软件分析工具包的基础。
## 许可证
本项目基于 MIT License 授权。
标签:Bash脚本, C++, DAST, PE解析, Windows底层, 云安全监控, 云资产清单, 恶意软件分析, 数据擦除, 逆向工程, 静态分析