使用Linux hexedit和xxd命令来查看和修改二进制文件

hexedit命令编辑二进制文件提供了一个方法,但对视图和内容保存到一个文件供以后分析没有编辑,试着xxd命令。

  • 在Facebook上分享
  • 在Twitter上分享
  • 分享在LinkedIn
  • 在Reddit分享
  • 通过电子邮件分享
  • 印刷资源
概念的团队回顾数据/警告/解决方案通过一个未来的接口。
Metamorworks /盖蒂图片社

Linux系统支持的文件编辑器——就像六世,vim,neovim,,GNU Emacs等等。但是你也可以安装一个编辑器,该编辑器允许您查看和修改二进制文件的内容—hexedit

hexedit,您可以编辑图片,可执行文件和其他二进制文件,但你必须知道很多您正在编辑的格式文件进行有效更改不破坏文件的格式。毕竟,你会编辑一次一个字节。这并不是暗示你不能使用此命令用于查看或编辑文本文件。有很少或没有理由这样做。

使用hexedit

尽管上面的评论文本文件,下面的例子是使用hexedit查看/修改文本文件,但只是为了演示由命令显示文件的内容并显示一个简单的方法来适应hexedit的工作原理。

hexedit myfile美元。txt 0000000054 68 69 7369 73 61 74 65 78 74 66是一个文本f 00000010 69 6 c 65 74 68 61 74 20 49 20 63 72 65 61 74 ile我创造00000020 65 64 67 76 75 73 69 6 e 69 20 6 f 6 e 20 d ed使用vi m 75 79 69 6 4 c e 00000030 78 73 79 73 74 65 6 d 2 e0一个y的Linux系统。74 49 00000040 74 61 69 63 6 f 6 e 6 e 73 20 6 f 6 e 6 c 79它只包含00000050 61 66 65 77 69 6 6 c e 65 73 66 6 f 20几行74 74 65 78 00000060 2 e0一个54 68 65 20 45 6 e 64 210一个文本。结束!

上面的显示器显示换行(“0”十六进制输出)出现在右边的文本时期。每个其他的2字节段显示在左边的行号(十六进制)和右边的文本表示一个字符。例如,四两字节字符串(54 68 69 73)左边的第一行文本对应于这个词“这”右边所示。如果你想改变这个词“,”,你可以利用你的右箭头键到9,然后输入“1”,然后再点击右边的3和4型。右边显示的文本会相应地调整。

您可以使用^年代搜索特定的字节。你会被提示输入你在寻找什么。使用x ^退出和回应“y”如果你想要保存更改。按住向下箭头键滑下来的行数据。

移动在二进制文件将以同样的方式工作,但你必须明白的部分文件你可以改变,而不需破坏文件格式。

可执行文件通常会从这样开始:

00000000 7 f 45 4 c 46 02年01 01 00 00 00 00 00 00 00 00 00 .ELF ............00000010 03 00 3 e 00 00 00 00 10 6 b 00 00 00 00 00 00 . . k >…………40 00000020 00 00 00 00 00 00 00 40 22日02 00 00 00 00 00 @ ....... @”……38 40 00000030 00 00 00 00 00 00 0 40 d 00 00 1 f 00 1 e 00 .... @.8…@ .....40 00000040 06 00 00 00 04 00 00 00 00 00 00 00 00 00 00 ........ @ .......40 00000050 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @ ....... @ .......00000060 D8 02 00 00 00 00 00 00 D8 02 00 00 00 00 00 00 ................00000070 08年00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 ................

.ELF在右边的顶线识别这个文件作为一个ELF文件。精灵是一种常见的标准可执行文件,但不会是可读的文本内容;它将编译后的代码。如果你要改变什么在此文件中,有一个好机会,它将不再正常运行和一些可能会导致段错误。

hexedit命令是有时用于网络犯罪调查因为没有内容隐藏的观众,所以它可以帮助找到嵌入恶意软件等。它帮助,然而,有一些知道你在寻找什么,这些数据可能被发现。它总是一个好主意来支持任何文件你打算编辑,这样您就可以轻松地恢复到它。

的手册页hexedit命令文件中描述了如何移动,有/没有保存退出您的更改,进行搜索和做其他的事情。中移动文件和修改非常容易一旦你知道变化将是有效的。

使用xxd

xxd命令允许您从一个文件中创建一个十六进制转储。换句话说,你基本上相同的输出hexedit,但xxd只显示输出。它不提供任何编辑文件内容的方法。在下面的示例中,我们使用xxd显示十六进制的jpg文件的内容随着hex-to-character翻译。您可能会注意到,图像与Photoshop问题似乎已经被创建。

美元xxd micro.jpg | 00000000: ffd8 ffe0命名的0010 4946 0001 0100 0048……就是.....H 00000010: 0048 0000 ffe1 004 c 4578 6966 0000 4 d4d . H ..... LExif . .毫米00000020:002 0000 0008 0001 8769 0004 0000 0001。* .......我……00000030:0000 001 0000 0003 0000 0000 0003 a001 ................00000040:0001 0001 0000 0004 0000 0001 0000 ................ a002a003 00000050: 002 0004 0000 0001 0000 0036 0000。* ........... 6 . .00000060:0000 0038 5068 6 f74 6 f73 686 f 7020 ff .....8 ps 00000070: 332 e d 3000 3842 494 0404 0000 0000 0000 3.0.8BIM ........00000080:3842 494 d 0425 0000 0000 0010 d41d 8 cd9 8 bim. % ..........00000090:8 f00 b204 e980 0998 ecf8 427 e ffc0 0011 .......... B ~ ....

您也可以重定向的输出xxd命令文件中供以后分析。

美元xxd micro.jpg >微。三头微美元。txt 00000000: ffd8 ffe0 0010 4a46 4946 0001 0100 0048 ......JFIF.....H 00000010: 0048 0000 ffe1 004c 4578 6966 0000 4d4d .H.....LExif..MM 00000020: 002a 0000 0008 0001 8769 0004 0000 0001 .*.......i...... 00000030: 0000 001a 0000 0000 0003 a001 0003 0000 ................ 00000040: 0001 0001 0000 a002 0004 0000 0001 0000 ................ 00000050: 002a a003 0004 0000 0001 0000 0036 0000 .*...........6.. 00000060: 0000 ffed 0038 5068 6f74 6f73 686f 7020 .....8Photoshop 00000070: 332e 3000 3842 494d 0404 0000 0000 0000 3.0.8BIM........ 00000080: 3842 494d 0425 0000 0000 0010 d41d 8cd9 8BIM.%.......... 00000090: 8f00 b204 e980 0998 ecf8 427e ffc0 0011 ..........B~....

请注意,hexedit使用大写字母的十六进制字符xxd使用小写字母和礼物价值四字节块而不是两字节块。

总结

hexedit命令可以用来显示二进制文件的内容(图像、可执行文件等)和xxd命令可以用来显示和保存这些文件的内容在上面的格式显示出来供以后分析。

相关:

版权©2023 IDG通信公司。足球竞彩网下载

企业网络2022的10个最强大的公司