使用cat查看二进制,显示乱码
[root@localhost ~]# cat /var/log/wtmp~~~reboot3.10.0-514.el7.x86_64 �YO#5~~~runlevel3.10.0-514.el7.x86_64��Y��,':0:0(unknown):0��YJ1':0:0:0��Y��J(:0:0bp:0��Y�m�+pts/0/0bp:0��YMCpts/0/0bp��Yh� �,pts/0/0bp:0�Y�![(:0:0:0��YUpts/0/0bp��Y�`�.:0:0(unknown):0��Y�.:0:0:0��YH@�/:0:0root:0��Y���1pts/0/0root:0��Y[�\3pts/1ts/1root192.168.2.1��Y���pts/0/0root��Y7��/:0:0:0��Y{�~~~shutdown3.10.0-514.el7.x86_64��Y�W ~~~reboot3.10.0-514.el7.x86_64��Y�W�tty1tty1�˜Y<��tty1tty1LOGIN�˜Y<�3~~~rtty3tty3טY+tty3tty3LOGINטY+tty3tty3root��Ynk tty4tty4 ��Y+T
使用xxd查看二进制文件
[root@localhost ~]# xxd /var/log/wtmp|head -20 #默认显示十六进制0000000: 0200 0000 0000 0000 7e00 0000 0000 0000 ........~.......0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000020: 0000 0000 0000 0000 7e7e 0000 7265 626f ........~~..rebo0000030: 6f74 0000 0000 0000 0000 0000 0000 0000 ot..............0000040: 0000 0000 0000 0000 0000 0000 332e 3130 ............3.100000050: 2e30 2d35 3134 2e65 6c37 2e78 3836 5f36 .0-514.el7.x86_60000060: 3400 0000 0000 0000 0000 0000 0000 0000 4...............0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................00000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................00000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................00000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................00000d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................00000e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................00000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................[root@localhost ~]# xxd -b /var/log/wtmp|head -20 #增加-b选项转换为二进制形式0000000: 00000010 00000000 00000000 00000000 00000000 00000000 ......0000006: 00000000 00000000 01111110 00000000 00000000 00000000 ..~...000000c: 00000000 00000000 00000000 00000000 00000000 00000000 ......0000012: 00000000 00000000 00000000 00000000 00000000 00000000 ......0000018: 00000000 00000000 00000000 00000000 00000000 00000000 ......000001e: 00000000 00000000 00000000 00000000 00000000 00000000 ......0000024: 00000000 00000000 00000000 00000000 01111110 01111110 ....~~000002a: 00000000 00000000 01110010 01100101 01100010 01101111 ..rebo0000030: 01101111 01110100 00000000 00000000 00000000 00000000 ot....0000036: 00000000 00000000 00000000 00000000 00000000 00000000 ......000003c: 00000000 00000000 00000000 00000000 00000000 00000000 ......0000042: 00000000 00000000 00000000 00000000 00000000 00000000 ......0000048: 00000000 00000000 00000000 00000000 00110011 00101110 ....3.000004e: 00110001 00110000 00101110 00110000 00101101 00110101 10.0-50000054: 00110001 00110100 00101110 01100101 01101100 00110111 14.el7000005a: 00101110 01111000 00111000 00110110 01011111 00110110 .x86_60000060: 00110100 00000000 00000000 00000000 00000000 00000000 4.....0000066: 00000000 00000000 00000000 00000000 00000000 00000000 ......000006c: 00000000 00000000 00000000 00000000 00000000 00000000 ......0000072: 00000000 00000000 00000000 00000000 00000000 00000000 ......[root@localhost ~]#
下面来看一下如何编辑二进制和十六进制文件
以编辑/var/log/wtmp为例 首先vi /var/log/wtmp 在vi命令模式下输入 :%!xxd 进入十六进制编辑模式 :%!xxd -b 进入二进制编辑模式 那么编辑完了怎么保存呢 首先按esc推出编辑模式 :%!xxd -r 返回vi模式 然后:wq保存退出即可另外还有查看十六进制的hexdump命令,最简单的使用方法就是hexdump filename 就会显示十六进制文件内容
[root@localhost ~]# hexdump /var/log/wtmp|head -100000000 0002 0000 0000 0000 007e 0000 0000 00000000010 0000 0000 0000 0000 0000 0000 0000 00000000020 0000 0000 0000 0000 7e7e 0000 6572 6f620000030 746f 0000 0000 0000 0000 0000 0000 00000000040 0000 0000 0000 0000 0000 0000 2e33 30310000050 302e 352d 3431 652e 376c 782e 3638 365f0000060 0034 0000 0000 0000 0000 0000 0000 00000000070 0000 0000 0000 0000 0000 0000 0000 0000*0000150 0000 0000 b409 5905 234f 000e 0000 0000[root@localhost ~]#