CFF Explorer,为现代 Windows 重新打造
熟悉的 PE 编辑器,以 Visual Studio 美学重新设计,支持高 DPI、通用撤销与重做、Authenticode 验证、PDB 符号解析、Detect It Easy 集成以及多语言支持。
Coffee Explorer 是从零开始重新实现的 CFF Explorer。它保留了熟悉的布局:左侧是文件树,右侧是选中的结构,单元格可编辑,并包含相同的工具(地址转换器、依赖查看器、十六进制编辑器、导入添加器、重建器、资源编辑器)。
该项目完全从零构建,不含任何遗留代码,其核心是一个高性能的 C++23 引擎(pecore.dll),由 PeLib 驱动,并搭配一个响应式 WPF 界面,风格仿照 Visual Studio Code。
[!IMPORTANT] Coffee Explorer 在内存中编辑文件。在你保存之前,任何内容都不会写入磁盘,并且每一次更改都可以撤销,包括结构性更改(添加节、重建导入、移除签名)。
[!NOTE] CFF Explorer 的一些遗留功能被有意移除:脚本引擎、PEiD 签名、插件、多界面模式、绑定导入。参见已移除的功能。
![]() | ![]() |
| 带熵图的文件概述,深色主题 | 带熵图的文件概述,浅色主题 |
![]() | ![]() |
| 节头 | 带导入名称的导入目录 |
![]() | ![]() |
| 十六进制编辑器 | 反汇编器 |
![]() | ![]() |
| Authenticode 签名与 Windows 信任 | Rich 头 |
![]() | ![]() |
| 带 API set 解析的依赖查看器 | 带图标预览的资源编辑器 |
![]() | ![]() |
| 作为自定义主题的 VS Code Dark High Contrast | 德语界面 |
CFF Explorer 仍然是许多人在需要查看 PE 文件内部时首选的工具。然而,它自 2012 年以来就没有再更新过:
Coffee Explorer 保留了原有工作流程,并修复了其余问题:
| 领域 | CFF Explorer VIII | Coffee Explorer |
|---|---|---|
| 外观 | Win32 控件,96 DPI,仅浅色 | 跟随 Windows 主题实时切换的 Visual Studio Code 浅色和深色主题,自定义 VS Code 主题,每显示器 DPI v2,矢量图标 |
| 语言 | 仅英语 | 英语、德语和俄语,通过单个文本文件可添加更多语言 |
| 编辑 | 直接写入,无撤销 | 每次编辑均可撤销和重做,包括结构性操作,每个标签页有修改标记 |
| 文件识别 | 2012 年的 PEiD 数据库 | Detect It Easy,使用当前 DiE 数据库 |
| 哈希 | MD5、SHA-1 | MD5、SHA-1、SHA-256、BLAKE3,并行计算(Windows 上使用硬件 SHA) |
| 签名 | 安全目录以原始字节显示 | Authenticode 验证:摘要检查、证书、时间戳、嵌套签名、Windows 信任 |
| 符号 | 无 | 反汇编器、异常目录和地址转换器中的 PDB 符号,Microsoft 符号服务器下载 |
| 异常目录 | IA64 布局,x64 文件为空 | x64 RUNTIME_FUNCTION,解码 UNWIND_INFO,ARM64 紧凑展开数据,函数名称 |
| 调试目录 | 仅第一项 | 所有条目:CodeView(RSDS 或 NB10)、POGO、VC 特性、repro、扩展 DLL 特性(CET),以及删除整个目录 |
| Rich 头 | 不显示 | 解码、可编辑、加密和解密、校验和验证、产品名称 |
| 大文件 | 缓慢,窗口可能冻结 | 快速加载,后台解析,300 MB 的游戏可执行文件约一秒打开 |
| 未修饰名称 | 底部面板 | 导出和导入中的未修饰名称列 |
| 功能 | 作用 |
|---|---|
| Visual Studio Code 主题 | 从 VS Code 主题文件生成的浅色和深色调色板。使用系统设置会在 Windows 更改主题时实时切换。 |
| 自定义 VS Code 主题 | 放入 themes 文件夹的任何 VS Code 颜色主题都会出现在浅色和深色旁边,包括高对比度主题。参见自定义主题。 |
| 界面语言 | 英语、德语和俄语,可在选项中实时切换。参见语言。 |
| 高 DPI | 每显示器 DPI v2:在 4K 屏幕上以及在显示器之间移动窗口时,文本和图标清晰锐利。 |
| VS Image Library 图标 | 每个图标都来自 Visual Studio 2026 Image Library 的矢量绘图,并针对每个主题重新着色。 |
| 文档标签页 | 每个文件一个标签页,各自拥有独立的树。打开已打开的文件只会激活其标签页(CFF Explorer 会将树留在旧文件上)。 |
| 类型化单元格编辑器 | 十六进制值就地编辑,枚举获得下拉列表,标志获得可勾选列表,各处使用相同的弹出窗口。 |
| 随处复制 | 每个网格上都有复制、复制值、复制偏移和复制所有行,包括 Ctrl+C。 |
| 状态栏 | 焦点值的偏移、大小和类型,文件类型,修改状态和当前主题。 |
| 非阻塞 | 文件打开和视图加载在工作线程上进行,大型视图显示占位符而不是冻结窗口。 |
| 最近文件、拖放、只读模式 | 从标签页菜单可只读打开、重新加载、打开所在文件夹和复制完整路径。 |
| 安全保存 | 保存写入临时文件后替换原文件,保留其属性、权限、创建时间和备用数据流。 |
| 资源管理器集成 | 每个文件的上下文菜单中都有用 Coffee Explorer 打开,按用户安装且无需管理员权限,在 Windows 11 紧凑菜单中也可用。资源管理器还可以将文件交给正在运行的实例。 |
| 应用程序字体 | 整个界面(菜单、树、网格、对话框)使用一种字体和字号,与十六进制字体分开。 |
| 入口点一目了然 | AddressOfEntryPoint 和概览中的入口点行会着色并标记,使其在头部网格中突出显示。 |
| 功能 | 作用 |
|---|---|
| 通过 Detect It Easy 获取文件信息 | 使用当前 DiE 数据库检测编译器、链接器、打包器、保护器和库。深度、启发式和递归扫描为可选项。 |
| 哈希 | MD5、SHA-1、SHA-256 和 BLAKE3,每次更改时计算一次并并行执行。 |
| 签名行 | “由 Microsoft Windows 签名,SHA-256,文件摘要匹配”,或准确说明签名存在的问题。 |
| 熵图 | 整个文件的香农熵彩色条带,包含头部、节区、证书和覆盖层条带。悬停显示块的熵,点击可在该处打开十六进制编辑器。打包和加密区域会立即凸显。 |
| 符号、缓解措施、覆盖层 | 一目了然地显示 PDB 状态、ASLR、高熵 VA、DEP、CFG 和 CET 标志,以及覆盖层大小和偏移。 |
| 版本信息 | 版本资源以可编辑表格呈现:就地修改文件版本和产品版本、公司名称、描述、版权或任何其他字符串。值可以增长或缩短,资源写回时会修正所有长度。 |
| 功能 | 作用 |
|---|---|
| Rich 头 | DanS 和 Rich 标记、密钥、计算出的校验和、填充检查、空闲空间和 Rich 哈希。条目显示产品名称和 Visual Studio 版本。 |
| Rich 头编辑 | 编辑产品、构建号和计数,添加或删除条目,就地解密、使用校验和加密,或移除头部。编辑会自动使用有效校验和重新加密。 |
| 所有数据目录 | 导出、导入、资源、异常、安全、重定位、调试、TLS、加载配置、绑定导入、IAT、延迟导入、.NET 和覆盖层各自拥有独立节点。 |
| 正确的节区查找 | 数据目录 RVA 即使在零大小节区之后也能映射到正确的节区(CFF Explorer 曾将 .idata RVA 放入 .bss)。 |
| 可编辑名称 | 模块、导入、导出和转发器名称可就地编辑。当 AddressOfNames 不再排序时会显示警告。 |
| 未修饰名称 | 导出、导入和延迟导入表显示 MSVC 修饰名称的完整 C++ 声明。 |
| 异常目录 | x64 和 ARM64 的 RUNTIME_FUNCTION 条目,包含解码后的展开代码、函数大小、节区,以及来自符号或导出的函数名称。 |
| 安全目录 | 签名者、链、时间戳签名者、序列号、指纹和有效期。保存证书 导出 PKCS #7 blob,移除签名 将其剥离。 |
| 调试目录 | 所有条目均已解码,CodeView 包含 PDB 路径、GUID 和 age。移除调试目录 会清除表、数据和目录条目。 |
| .NET 元数据 | COR20 头、元数据根、流、表,以及 #Strings、#US、#GUID 和 #Blob 作为带偏移的列表。 |