# readpe（原名 pev）PE 文件分析工具集

> 命令行工具集（原名 pev），用于分析 32 位和 64 位 Windows PE 文件。readpe 输出 DOS、COFF 与可选头、节区、数据目录以及导入和导出表；配套工具可反汇编代码（pedis），以 ssdeep、imphash 等算法对整个文件、文件头或节区计算哈希（pehash），列出并提取资源（peres），匹配加壳签名（pepack），标出 TLS 回调、高熵值或异常入口点等特征（pescan），报告 ASLR、DEP/NX、SEH 与栈 cookie 标志并导出证书（pesec），还能查找字符串以及在文件偏移和 RVA 之间换算。输出插件支持文本、CSV、XML、HTML 和 JSON，附带的 libpe C 库提供解析功能。

- 类型：工具
- 目标：二进制
- 类别：原生分析工具
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/mentebinaria/readpe>
- 一手来源：<https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/readpe/>
- 记录 JSON：<https://awesomerea.org/resources/readpe/record.json>
- 英文版：[English](https://awesomerea.org/resources/readpe/index.md)

## 使用条件与局限

- 审阅时最新版本为 v0.85.1，发布于 2025-08-29，用于更正 v0.85（2025-08-08）报告的版本号；只有较早的 v0.81 和 v0.82 版本附带 Windows ZIP 构建。所审阅的 master 提交日期为 2026-07-08，比该版本多五个提交，修复了 peres 的版本信息输出和仅按序号导入的函数识别，并让 macOS CI 构建改用较新的 OpenSSL。README 说明了从 pev 改名的经过，以及 libpe 已并入本仓库。
- 需用 make 和 C 编译器从源码构建，并需要 OpenSSL 开发头文件。在 Linux 上，make install 将文件安装到 /usr/local，还需用 ldconfig 登记 /usr/local/lib 才能找到 libpe.so；macOS 构建需在 CFLAGS 和 LDFLAGS 中传入 Homebrew 的 OpenSSL 路径；Windows 构建使用安装了 gcc-core、binutils、make、zip 和 libssl-devel 的 Cygwin，其中 make zip 还会构建 cpload 并打包所需的 Cygwin DLL。CI 仅在 Linux、macOS 和 Cygwin 上编译。
- 输入为使用者提供的 PE 文件。其他工具只解析文件，而仅限 Windows 的 cpload 会载入控制面板（.cpl）项并向其发送 CPL 消息以便调试，因此会运行该项的代码。pepack 依赖附带的 userdb.txt，这是一份 PEiD 格式的签名列表，文件头称共 3,520 条，但未注明来源；pescan 和 pesec 报告的是启发式迹象和文件头标志，而非判定结论。
- tests/run.sh 以每种输出格式运行各个工具，并将结果与 expected_outputs 目录比较，但该目录不在仓库中；另附有 valgrind 脚本，以及由 tests/samples_src 用 MinGW 构建的 helloworld.exe 样本。CI 不运行这些测试。
- 各工具采用 GPL-2.0-or-later 许可并附 OpenSSL 链接例外，lib/libpe 采用 LGPL-3.0，附带的 udis86 反汇编器保留其 BSD 声明。

## 一手来源

1. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/README.md>
2. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/doc/manual/en_us/tools.docbook>
3. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/lib/libpe/README.md>
4. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/Makefile>
5. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/.github/workflows/multi-os-build.yml>
6. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/src/windows/cpload.c>
7. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/src/userdb.txt#L1-L2>
8. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/tests/run.sh>
9. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/src/readpe.c#L1-L34>
10. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/LICENSE>
11. <https://github.com/mentebinaria/readpe/blob/967ab57f7cfbebf340a8f85744a1d095029cfbfe/lib/libpe/LICENSE>
12. <https://github.com/mentebinaria/readpe/releases/tag/v0.85.1>
13. <https://github.com/mentebinaria/readpe/releases/tag/v0.85>

## 同分区更多条目：原生二进制

- [malware-jail JavaScript 恶意代码沙箱](https://awesomerea.org/zh/resources/malware-jail/index.md) · 工具
- [gxpc XPC 通信嗅探工具](https://awesomerea.org/zh/resources/gxpc/index.md) · 工具
- [Manticore 符号执行工具](https://awesomerea.org/zh/resources/manticore/index.md) · 工具
- [Ghidra Ninja Ghidra 脚本合集](https://awesomerea.org/zh/resources/ghidra-ninja-scripts/index.md) · 工具
- [FindCrypt Ghidra 版密码常量识别脚本](https://awesomerea.org/zh/resources/findcrypt-ghidra/index.md) · 工具
- [Binary Refinery 二进制数据转换工具集](https://awesomerea.org/zh/resources/binary-refinery/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
