查看并删除二进制文件中的部分数据

查看并删除二进制文件中的部分数据

如何从二进制文件中删除部分二进制数据? (十六进制转储)。我尝试了 GHex 3.18.0 二进制文件编辑器,但它不适合这个,只是缺乏简单的功能。例如,我需要选择偏移地址范围0x83FFF0 – 0xDDAFEB,并删除整个块(实际上是删除从0x83FFF0到文件末尾的部分)。

我更喜欢 GUI 工具,因为无论如何我都需要查看二进制内容。但是:首先我可以使用 GUI 编辑器找到地址,然后使用一些脚本命令来修改文件。 (可能是bbe命令?)

答案1

你可以在以下位置执行此操作Emacs,如果没有预安装,它可以在大多数 Unix 系统上作为软件包使用。内置的十六进制查看器不支持删除,但改进的十六进制查看器Nhexl模式做。

在 Emacs 中打开该文件并输入Alt+x nhexl-mode Enter.如果显示“不匹配”,请输入Ctrl+g并安装 nhexl-mode,然后重试。要安装 nhexl-mode,最简单的方法是作为 Emacs 包。从“选项”菜单中选择“管理 Emacs 包”,然后选择 nhexl-mode 并单击“安装”,或输入Alt+x package-install Enter nhexl-mode Enter.

在 nhexl 模式下,导航到要删除的区域的开头,然后按Ctrl+Space。导航至该区域的末尾并按Delete。当您对更改感到满意时,保存文件。

Emacs 不适合大文件,但几十 MB 没问题。

答案2

如果您只需要文件的第一部分,请使用命令行上的一行:

head --bytes=8650736 Original > Truncated

(其中 83FFF0十六进制 显然是 8650736十进制

如果您使用简单的命令行计算器就变成:

head --bytes=$(c "ibase=16; 83FFF0") Original > Truncated

相关内容