使用Notepad++作为十六进制编辑器

Use Notepad++ as HEX-Editor

提问人:Uwe_98 提问时间:3/12/2020 最后编辑:Uwe_98 更新时间:12/13/2022 访问量:207969

问:

我在 Windows 10 上使用 Notepad++ 7.8.5 64 位版本。我想将它用作十六进制编辑器。

我打开了一个二进制文件,但记事本将其显示为带有奇怪字符的文本。为了可视化十六进制数字,我选择了文本的一部分,然后点击语音

Plugins/Converter/ASCII-->HEX 

它向我显示了所选零件的十六进制数。现在我想以十六进制查看整个文件,但它不起作用。似乎选择某些部分它可以工作,而选择其他部分则不起作用。

我需要以 HEX 格式转换或可视化整个文件。

我也试过:

Plugins/Plugins Admin…

但是十六进制编辑器不存在。

谢谢 4 帮助

plugins notepad++ 十六进制编辑器

评论

1赞 help-info.de 3/19/2020
正如我在回答中提到的,转换器主要用于文本文件或文本部分(ASCII -> HEX)。

答:

73赞 help-info.de 3/18/2020 #1

编辑:

请注意 - 同时安装已针对 64 位进行了调整。

  • 请从下载部分更新到 Notepad++ 8.4.7(64 位)
  • 转到菜单插件 > 插件管理员
  • 在搜索字段中输入十六进制。
  • 选择 Hex-Editor 并按 ìnstall。

在我看来,您尝试安装十六进制编辑器,但最终使用了错误的工具(插件)(ASCII -> HEX),如您上面的问题所述。Converter

HexEditor 的安装过程有些混乱,因为它目前仅适用于 32 位版本。Plugins Admin

一个简单的解决方案是在 U 盘上安装 Notepad++ x32 版本(例如使用 PortableApps)。

但是,感谢 Peter Jones,这里是 x64 版本的下载链接。 和实际执行手动安装的说明:

  • 解压缩相应的下载的 zipfile 并打开包含该文件夹(或在 Windows 资源管理器中打开该 zipfile)
  • 在 Notepad++ 中,使用“插件”>“打开插件文件夹”。
  • 在新打开的 plugins 文件夹中,添加一个子文件夹 HexEditor。
  • 将 zipfile 复制到 HexEditor 子文件夹中...所以它应该在HexEditor.dll...\notepad++\plugins\HexEditor\HexEditor.dll
  • 关闭Notepad ++的所有打开的窗口。
  • 再次重新启动 Notepad ++。
  • HexEditor 应该在插件菜单中可用,并且 HexEditor.dll 应该列在 ?> 调试信息插件列表。

在 Windows 10 上通过 Notepad++ 版本 7.8.5 64 位成功测试。有关更多信息,请参阅上面的链接。请注意 UAC 问题,即以管理员身份运行 Notepad++。

评论

0赞 Uwe_98 3/19/2020
@UK谢谢。直到“复制十六进制编辑器.dll...”我明白了。但我想知道你在说哪些“Notepad++ 副本”。您的意思是在将 HexEditor.dll 复制到合适的位置后关闭 Notepad++ 并重新启动它吗?其余的在我看来很清楚。
1赞 help-info.de 3/19/2020
@Uwe_98 - 是的,关闭Notepad ++的所有打开的窗口。
0赞 Uwe_98 3/19/2020
现在我只需要继续“Plugins > HEXEditor 并标记”View in Hex”。要返回文本模式,我只需要取消标记它。
1赞 KolonUK 8/27/2021
@Uwe_98 功能栏中应该有一个图标。它在十六进制和 Ascii 模式之间切换
0赞 MarkHone 4/7/2022
作为后续,在撰写本文时,Notepad++ 的当前版本(v8.3.3,64 位)对我来说运行良好,只需进入插件管理窗口并像往常一样通过 UI 安装 HEX-Editor 插件。
3赞 Greg7000 2/5/2021 #2

help-info.de 的答案正在起作用。

但是,如果您处于需要复制粘贴插件提供的十六进制输出结果的上下文中,那就不是那么好了。


例如,假设NPP_HexEdit窗口显示以下字节:

00 06 12 0b

如果您从左到右选择,复制然后粘贴(在新的文本文件中),您将获得:

20 06 12 0b

出于某种原因,“0x00”被转换为 UTF-8 “20”,并且由于“0x20”也被转换为 UTF-8 “20”,因此您不能在这里真正使用复制 + 粘贴功能。

如果您从右到左选择,复制然后粘贴(在新的文本文件中),您将获得:

12 01 0e 0d

我什至不会尝试转换这个,显然无法使用......


解决方案 (Windows)

  • 在选择并安装 NppExec 中,重新启动 npp。Plugins > Plugins Admin

  • 选择并输入以下内容:Plugins > NppExec > Npp Execute...

     SET local OUTFILE = "$(FULL_CURRENT_PATH).hex.txt"
     cmd /c <XXD_DIRECTORY>\xxd.exe -p $(FULL_CURRENT_PATH) >$(OUTFILE)
     NPP_OPEN $(OUTFILE)
    
  • 在同一窗口中保存脚本,例如 .bin_to_hex

  • 从中选择脚本并添加它,然后按确定并重新启动 npp。Plugins > NppExec > Advanced OptionsAssociated script:Add/Modify

  • 在 npp 中,打开 bin 文件。

  • 选择,你就完成了!,应该在新选项卡中将您的垃圾箱作为十六进制Plugins > NppExec > bin_to_hex

xxd.exe 可以从多个位置恢复,例如:

  • C:\Program 文件 (x86)\Vim\vim74
  • (我在我这边用了这个,来自 CmderC:\Cmder\vendor\git-for-windows\usr\bin

编辑您可以使用以下 powershell 方法(格式更好,但执行时间更长),而不是使用 xxd.exe。将脚本替换为:

    SET local OUTFILE = "$(FULL_CURRENT_PATH).hex.txt"
    cmd /c powershell -command "format-hex $(FULL_CURRENT_PATH) > $(OUTFILE);exit"
    NPP_OPEN $(OUTFILE)