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底层, 云安全监控, 云资产清单, 恶意软件分析, 数据擦除, 逆向工程, 静态分析