notepad++需安装hexeditor插件才能查看二进制文件头;确认成功加载须在plugins→plugin admin中搜到hex editor且状态为“installed”,否则菜单缺失或打开二进制文件仍乱码。

Notepad++ 本身不能直接查看二进制文件头信息,必须依赖 Hex Editor 插件(注意大小写和连字符:HEX-Editor 或 HexEditor)才能以十六进制形式显示原始字节——这才是读取文件头(如 PNG 的 89 50 4E 47、PE 文件的 4D 5A)的唯一可行方式。
如何确认 Hex Editor 插件已正确加载
插件没加载成功,后续所有操作都无效。常见现象是:菜单里没有 Plugins → HEX-Editor,或打开二进制文件后仍是乱码。
- 打开 Notepad++,点击
Plugins → Plugin Admin,在搜索框输入Hex Editor,确认状态栏显示“Installed”且版本号不为空(如 v0.9.7) - 若 Plugin Admin 中找不到,说明你用的是旧版 Notepad++(HexEditor.dll 并放入
plugins\HexEditor\子目录(不是plugins\根目录) - 重启 Notepad++ 后,按
Alt+Shift+H快捷键,若弹出十六进制视图即表示加载成功;否则检查 Windows 事件查看器中是否有 DLL 加载失败报错
打开二进制文件后看不到文件头?先关掉自动编码检测
Notepad++ 默认会尝试用 UTF-8 或 ANSI 解析文件内容,对 .exe/.bin/.dat 等文件会误判并插入 BOM 或截断数据,导致头部字节被“吃掉”或错位显示。
- 打开文件前,先点击
Encoding → Encode in ANSI(或UTF-8 without BOM),再打开目标文件 - 更稳妥的做法:关闭自动编码识别——进入
Settings → Preferences → MISC.,取消勾选Auto-detect encoding when opening files - 验证是否生效:打开一个已知头部的文件(如任意 .png),观察前 8 字节是否稳定显示为
89 50 4E 47 0D 0A 1A 0A;若第 1 字节是00或显示异常,说明编码设置仍不正确
定位并解读常见文件头(Magic Number)的实操技巧
十六进制视图里“看懂”文件头,不只是数前几个字节,更要结合 ASCII 预览栏与上下文偏移。
- 文件头通常位于偏移
0x0000开始位置,但某些格式(如 FAT32 镜像)头部可能在0x0200;用Ctrl+G输入偏移地址可快速跳转 - 常用 Magic Number 示例:
4D 5A(PE 文件)、7F 45 4C 46(ELF)、50 4B 03 04(ZIP/PK);注意大小端:x86 架构下多为小端,但文件头本身是大端存储 - ASCII 预览栏右侧若出现可读字符串(如
MZ、ELF、PK),基本可确认文件类型;若全是.(点号),说明该区域无有效 ASCII 字符,需专注十六进制列 - 右键选中某段字节 →
Plugins → HEX-Editor → Copy as C array,可一键生成{0x4D, 0x5A, ...}格式,方便粘贴到 C/Python 代码中做进一步解析
为什么改完字节后保存无效?关键在写入模式
Hex Editor 插件默认以只读方式打开文件,即使你双击修改了某个字节,Ctrl+S 也不会真正写回磁盘——这是防止误操作的核心保护机制。
- 编辑前必须先启用写入:点击
Plugins → HEX-Editor → Edit mode(菜单项会变蓝),或按快捷键Alt+Shift+E - 启用后,修改字节时背景色会变为浅黄色;未启用时双击无反应或仅高亮
- 保存时注意:插件不支持“另存为”,
Ctrl+S是直接覆写原文件,务必提前备份;若提示“Access denied”,说明文件被其他进程占用(如杀毒软件、资源管理器预览窗格) - 特别提醒:修改 PE 或 ELF 头部后,校验和(如 PE 的
CheckSum字段)不会自动更新,运行时可能崩溃——Hex Editor 不提供自动修复,仅用于分析和简单 patch
最常被忽略的其实是编码设置和写入模式这两步。很多人卡在“明明装了插件却看不到 MZ”,实际只是 Notepad++ 在后台偷偷把文件当 UTF-8 解码了;或者改完字节兴冲冲 Ctrl+S,结果文件纹丝不动——因为根本没开 Edit mode。











