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


    查看二进制有以下几种方法:

    方法一:hexdump

    apt-get install libdata-hexdumper-perl

    安装好之后就可以直接hexdump your_binary_file

    也可以直接使用hd命令来代替hexdump

    如果想要慢慢看 : hd your_binary_file | more

    方法二:

    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切换回来之后在保存才行。

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

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

    ghex

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

    UltraEdit

    二  比较两个二进制文件,可以使用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

    转自:http://blog.csdn.net/chenqiai0/article/details/8537832

  • 相关阅读:
    spock框架进行单元测试的学习与实践
    给List排序( list sort)
    SQLITE入门至精通
    SQL查询重复记录
    [转]检查本地DNS服务器是否正常工作及解决方法
    [转]HTC G11 ROOT获取权限教程
    [转]取当前日期是在一年中的第几周
    如何使用两台 NETGEAR 无线路由器进行无线中继(WDS)
    [转]string表达式运算
    [转]WM手机,关于如何让手机一直运行下去,而不进入待机
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/5760745.html
Copyright © 2020-2023  润新知