RamadhanAdam/sco-pe

GitHub: RamadhanAdam/sco-pe

一个用纯 C 编写的轻量级 Windows PE 文件解析工具,手动解析 PE 各级结构,适用于恶意软件分析、逆向工程和学习 PE 格式。

Stars: 0 | Forks: 0

# sco-pe 一个使用 C 语言编写的轻量级命令行工具,用于解析和分析 Windows Portable Executable (PE) 文件。该项目手动解析 PE 结构,不依赖外部 PE 解析库,适合用于学习 PE 格式、恶意软件分析、逆向工程和数字取证。 ## 功能 * 解析 DOS Header * 解析 NT Headers * 解析 File 和 Optional Header * 解析 Section Table * 显示节区权限(Read、Write、Execute) * 解析 Import Directory * 显示导入的 DLL 和函数名 * 解析 Export Directory * 显示导出的函数名 * 检测 PE overlay 数据 * 执行防御性边界检查,以安全处理格式错误的 PE 文件 ## 仓库结构 ``` . ├── include/ Header files ├── src/ Source code ├── tests/ Unit tests ├── samples/ Sample PE files ├── tools/ Standalone utilities ├── docs/ Build documentation ├── build/ Generated object files ├── bin/ Generated executables ├── Makefile ├── README.md └── LICENSE ``` ## 环境要求 * GCC * GNU Make * 类 Unix 环境(Linux 或 macOS) ## 构建说明 编译项目: ``` make ``` 可执行文件将生成于: ``` bin/scope ``` 删除生成的文件: ``` make clean ``` ## 使用说明 通过将 PE 文件的路径作为第一个参数传入,即可对其进行分析。 ``` ./bin/scope ``` 解析器将报告: * 文件信息 * DOS Header * NT Headers * Section Table * Import Directory * Export Directory * Overlay 信息 ## 测试 运行完整的测试套件: ``` make test ``` 测试套件验证以下内容: * 文件加载 * DOS Header 解析 * NT Header 解析 * Section Table 解析 * RVA 到文件偏移量的转换 * Import 解析 * Export 解析 * 共享的安全和边界检查例程 ## 工具 该仓库包含使用相同 PE 解析概念构建的独立实用工具。 ### C `tools/c/overlay_extract.c` 提取附加在 PE 镜像之后的 overlay 数据,同时处理 Authenticode Certificate Table。 构建: ``` gcc tools/c/overlay_extract.c -o overlay_extract ``` ### Python `tools/py/overlay_extract.py` 使用 Python 实现的相同 overlay 提取逻辑,用于脚本编写和快速分析。 ## 文档 更多构建文档可在 `docs/` 目录中找到。 ## 贡献 欢迎贡献。感谢提交 Bug 报告、功能请求和 Pull Request。 ## 许可证 本项目基于 MIT 许可证授权。详情请参阅 `LICENSE` 文件。
标签:DAST, PE解析, 云资产清单, 客户端加密, 恶意软件分析, 文件解析, 逆向工具, 逆向工程