Ubuntu Linux 查看、编辑、比较二进制文件

转载 2012年03月28日 10:12:34

2011年06月30日 星期四 9:55

想根据gdb的反汇编来修改一个内核模块的汇编,没发现上面方便的工具,就直接用二进制编辑器来改了一下,还好是个简单的整型参数,该起来还比较简单。下面是用到的命令。

 

1.  这两个命令都可以以十六进制打印输出 二进制文件内容。可以指定偏移和打印格式等

hexdump  xxd

2。   Vim 可以用来查看和编辑二进制文件

vim -b egenea-base.ko   加上-b参数,以二进制打开

然后输入命令  :%!xxd -g 1  切换到十六进制模式显示

0000000: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00  .ELF............
0000010: 01 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00  ................
0000020: 2c a7 03 00 00 00 00 00 34 00 00 00 00 00 28 00  ,.......4.....(.
0000030: 10 00 0d 00 55 89 e5 51 51 8b 45 08 85 c0 74 11  ....U..QQ.E...t.
0000040: 52 52 50 a1 00 00 00 00 50 e8 fc ff ff ff 83 c4  RRP.....P.......
0000050: 10 89 ec 5d c3 8d 76 00 55 89 e5 50 50 b8 01 00  ...]..v.U..PP...
0000060: 00 00 8b 55 08 39 d0 73 09 8d 76 00 01 c0 39 d0  ...U.9.s..v...9.
0000070: 72 fa 8b 55 04 51 52 50 a1 00 00 00 00 50 e8 fc  r..U.QRP.....P..
0000080: ff ff ff 89 ec 5d c3 90 55 89 e5 50 50 b8 01 00  .....]..U..PP...
0000090: 00 00 8b 55 08 39 d0 73 09 8d 76 00 01 c0 39 d0  ...U.9.s..v...9.
00000a0: 72 fa 8b 4d 04 8b 55 10 51 52 50 a1 00 00 00 00  r..M..U.QRP.....
00000b0: 50 e8 fc ff ff ff 89 ec 5d c3 89 f6 55 89 e5 57  P.......]...U..W
00000c0: 56 53 81 ec 8c 00 00 00 8b 5d 1c 8b 45 10 85 db  VS.......]..E...
00000d0: 75 7e 85 c0 75 71 50 8b 45 04 50 a1 00 00 00 00  u~..uqP.E.P.....
00000e0: 68 8c 00 00 00 50 e8 fc ff ff ff 83 c4 10 89 c2  h....P.........

 

然后就可以像修改文本文件一样修改16进制的字符,可以 用 / 查找指定的偏移等等。修改右边的ascii字符应该无效。

修改完成后再执行   ;%!xxd -r  切换会二进制模式,然后再 :wq 保存退出就可以了。在这vim里面这样编辑还是很方便的,注意一定要;%!xxd -r切换回来之后在保存才行。

 

3.  linux 上面也有十六进制编辑的GUI工具

jeex (http://www.hds619.net/jeex.php)

ghex

bless  (Bless is a Hex Editor for Gtk#    http://home.gna.org/bless/)

UltraEdit

试过bless要比ghex好用,用bless应该可以满足大部分要求了吧。在ubuntu的软件中心中都可以的到。

 

 

4.  比较两个二进制文件,可以使用vimdiff。

vimdiff应该还是比较好用的,类似windows 平台的windiff

vim -bd base.ko base2.ko

打开后就可以在两个窗口里面显示两个文件

ctrl + W +L  把输入焦点切换到右边的窗口,激活右边的窗口后输入的命令就是针对右窗口了
:%!xxd -g 1  切换成十六进制的一个字节的模式
ctrl + W +H  把输入焦点切换到左边的窗口
:%!xxd -g 1
] + c  查找上一个不同点
[ + c  查找下一个不同点
  0012930: 89 df 68 77 01 00 00 e8 fc ff|  0012930: 89 df 68 78 01 00 00 e8 fc f

                               ^                                                         ^


Ubuntu Linux 查看、编辑、比较二进制文件

查看二进制有以下几种方法: 方法一:hexdump apt-get install libdata-hexdumper-perl 安装好之后就可以直接hexdump your_binar...
  • arnoldlu
  • arnoldlu
  • 2013年10月11日 11:15
  • 566

Linux 查看、编辑、比较二进制文件 .

1.  指定偏移和十六进制打印等:hexdump  xxd 2。   Vim 可以用来查看和编辑二进制文件 vim -b ddddd.ko   以二进制打开":%!xxd -g 1"切换到...
  • qiufeng_xinqing
  • qiufeng_xinqing
  • 2015年01月23日 14:09
  • 458

Linux下的二进制文件比较工具

因为要用到二进制文件比较工具,所以就找了一些,总结一下。 0. diff        只会说“相同不或者相同”,不是我要的效果。 1.vimdi...
  • kangear
  • kangear
  • 2013年06月02日 18:02
  • 12682

linux下的二进制文件比较命令cmp

cmp 比较二进制文件内容差异 功能:cmp 命令逐字节比较两个文件内容。如果两个文件内容完全,则cmp命令不显示任何内容。若两个文件内容有差异,会显示第一个不同之处的字节数和行数编号。如果...
  • ly890700
  • ly890700
  • 2016年10月12日 14:09
  • 4731

Ubuntu编辑查看二进制文件

查看二进制有以下几种方法: 方法一:hexdump apt-get install libdata-hexdumper-perl 安装好之后就可以直接hexdump ...
  • luopeiyuan1990
  • luopeiyuan1990
  • 2013年02月25日 13:39
  • 2250

linux自带的二进制查看器

linux自带的二进制查看器: 1.od -x pm.img # -x:用十六进制显示 2.hexdump -C -n 512 pm.img # -n 512 ;只显示前512个字节的数据 -C:...
  • glorin
  • glorin
  • 2011年09月01日 10:11
  • 6353

linux下的二进制文件的编辑和查看

一、在Linux下查看二进制文件的软件: xxd (2进制) hexdump  (16进制)   二、编辑: 1、biew 2、hexedit 3、vim...
  • wh8_2011
  • wh8_2011
  • 2016年03月06日 10:21
  • 911

Ubuntu下查看二进制文件的简单方法

1   vim -b your_binary_file 2   :%!xxd -g 1
  • suer0101
  • suer0101
  • 2012年02月28日 13:38
  • 5379

Linux中查看二进制文件

Linux下查看二进制文件linux下查看二进制文件以十六进制格式输出: od [选项] 文件 od -d 文件 十进制输出 -o 文件 八进制输出 -x 文件 十六进制输出 xxd...
  • qqliyunpeng
  • qqliyunpeng
  • 2016年01月20日 14:26
  • 4104

文本文件和二进制文件比较

之前一直对文本文件和二进制理解不够透彻,今天总结一下彻底弄懂。 1. 能存储的数据类型不同      文本文件只能存储char型字符变量。      二进制文件可以存储int/short/long...
  • mxdlove00
  • mxdlove00
  • 2014年06月05日 00:06
  • 1287
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu Linux 查看、编辑、比较二进制文件
举报原因:
原因补充:

(最多只允许输入30个字)