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

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

一、在Linux下查看二进制文件的软件:

xxd (默认2进制)

hexdump  (默认16进制,可转其他进制)

od (默认8进制,可转其他进制)

二、编辑:

1、biew

2、hexedit

3、vim

Vim 来编辑二进制文件。Vim 本非为此而设计的,因而有若干局限。但你能读
取一个文件,改动一个字符,然后把它存盘。结果是你的文件就只有那一个字符给改了,
其它的就跟原来那个一模一样。
   要保证 Vim 别把它那些聪明的窍门用错地方,启动 Vim 时加上 "-b" 参数:
        vim -b datafile
这个参数设定了 ‘binary‘ 选项。其作用是排除所有的意外副作用。例如,‘textwidth‘
设为零,免得文本行给擅自排版了。并且,文件一律以 Unix 文件格式读取。
二进制模式可以用来修改某程序的消息报文。小心别插入或删除任何字符,那会让程序运
行出问题。用 "R" 命令进入替换模式。
文件里的很多字符都是不可显示的。用 Hex 格式来显示它们的值:
        :set display=uhex
另外,也可以用命令 "ga"  来显示光标下的字符值。当光标位于一个  字符上时,
该命令的输出看起来就像这样:
          27, Hex 1b,  Octal 033
文件中也许没那么多换行符。你可以关闭 ‘wrap‘ 选项来获得总览的效果:
        :set nowrap
字 节 位 置
要发现你在文件中的当前字节位置,请用这个命令:
        g CTRL-G
其输出十分冗长:
    Col 9-16 of 9-16; Line 277 of 330; Word 1806 of 2058; Byte 10580 of 12206
最后两个数字就是文件中的当前字节位置和文件字节总数。这已经考虑了 ‘fileformat‘
选项导致换行符字节不同的影响。
    要移到文件中某个指定的字节,请用 "go" 命令。例如,要移到字节 2345:
        2345go
使 用 XXD
一个真正的二进制编辑器用两种方式来显示文本: 二进制和十六进制格式。你可以在 Vim
里通过转换程序 "xxd" 来达到这效果。该程序是随 Vim 一起发布的。
   首先以二进制方式编辑这个文件:
        vim -b datafile
现在用 xxd 把这个文件转换成十六进制:
        :%!xxd
文本看起来像这样:
        0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49  ....9..;..tt.+NI
        0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30  K,.`.....b..4^.0
        0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9  7;‘1.".....i.59.
现在你可以随心所欲地阅读和编辑这些文本了。 Vim 把这些信息当作普通文本来对待。
修改了十六进制部分并不导致可显示字符部分的改变,反之亦然。
   最后,用下面的命令把它转换回来:
        :%!xxd -r
只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。

来自为知笔记(Wiz)

时间: 2024-10-04 21:37:28

linux下的二进制文件的编辑和查看 -的相关文章

linux下的静态库创建与查看,及如何查看某个可执行依赖于哪些动态库

linux下的静态库创建与查看,及如何查看某个可执行依赖于哪些动态库 创建静态库:ar -rcs test.a *.o查看静态库:ar -tv test.a解压静态库:ar -x test.a 查看程序依赖的动态库:readelf -a xxx|grep library如:可以看到,下面的交叉程序hello执行依赖于如下两个动态库.[email protected]:~/test$ arm-none-linux-gnueabi-readelf -a hello|grep "library&quo

Linux下apache日志分析与状态查看方法

假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)” 问题1:在apachelog中找出访问次数最多的10个IP.awk '{print $1}

Linux 下 apache 日志分析与状态查看[转]

假设apache日志格式为: 118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)” 问题1:在apachelog中找出访问次数最多的10个IP. awk '{print $

Linux下文件搜索、查找、查看命令

Linux下文件搜索.查找.查看命令 1.最强大的搜索命令:find 查找各种文件的命令 2.在文件资料中查找文件:locate 3.搜索命令所在的目录及别名信息:which 4.搜索命令所在的目录及帮助文档路径:whereis5.在文件中搜寻字符串匹配的行并输出:grep6.分页显示一个文件或任何输出结果:more7.分页显示一个文件并且可以回头:less8.指定显示前多少行文件内容:head9.指定显示文件后多少行内容:tail10.查看一个文件:cat11.查看文件内容多少字符多少行多少字

Linux下进程/程序网络带宽占用情况查看工具 -- NetHogs

http://www.vpser.net/manage/nethogs.html   来自.  最后略有修改 之前VPS侦探曾经介绍过流量带宽相关的工具如:iftop.vnstat,这几个都是统计和监控网卡流量的.但是当我们的服务器或 VPS的带宽被大量占用或占满,却没找不到称心的工具或程序来查看到底是哪个程序或进程占有率多少带宽.虽然在Windows上查看进程占用带宽情况的软件很多,像某3**.某Q家的电脑管家.IP雷达等.但是Linux下这一类软件很少,今天我们介绍的就是Linux的一款查看

Linux下的视频字幕编辑

一.Linux下的字幕编辑软件 常用的有subtitleeditor, gnome-subtitles, gaupol 1.gnome-subtitles:不支持多字幕文件批量处理2.gaupol:全英文界面3.subtitleeditor:功能和gnome-subtitles.gaupol差不多,但支持批量处理,界面中文 二.常见视频和字幕不同步原因 网上下载的字幕和视频由于有时来源不一样,造成字幕和音频不同步.常见不同步的原因一般有两个:1.视频桢率(FPS)和字幕桢率(FPS)不一致:例如

linux下vi或vim编辑文件时提示Found a swap file by the name的原因及解决方法

在linux下用vi或vim打开test.java文件时 [[email protected] test]# vi test.java 出现了如下信息: E325: ATTENTION     Found a swap file by the name ".test.java.swp"             owned by: root   dated: Wed Dec  7 13:52:56 2011         file name: /var/tmp/Test.java  

linux下进程、端口号相互查看方法

linux下通过进程名查看其占用端口: 1.先查看进程pid ps -ef | grep 进程名 2.通过pid查看占用端口 netstat -nap | grep 进程pid 例:通过nginx进程查看对应的端口号 #查看nginx进程pid: 命令: ps -ef | grep nginx 结果: root 9836 1 0 Jul11 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx nobody 9841 9836

Linux下防火墙开启相关端口及查看已开启端口

有时候我们辛辛苦苦安装了一个服务却发现无法访问,以为自己没有安装成功,其实解决的方法很简单,就是开启一下相关端口.比如说我安装了Nginx或Apache,那么就需要在防火墙上放行80端口.相关实例代码如下. /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT #开启80端口 /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT #开启22端口 /etc/rc.d/init.d/iptables