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解析, 云资产清单, 客户端加密, 恶意软件分析, 文件解析, 逆向工具, 逆向工程