二进制文件包含字符串和一些数字,如果执行
od -c filename
或strings filename
,则可以正确看到字符串。但是,数字呢?它们采用某种奇怪的格式。
这样做后的文本od -c filename
是这样的:
0000000 036 \ 0 032004 SD \ 0 \ 0 \ 0 \ 0序列1 0000020 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ t \ 0→002 3 001 0000040&\ 0 032 \ f O 2 006 \ 0 \ 0 \ 0 osfus 1 0000060→002 3 001ÿ\ r \ 0 \ 0 \ t \ 0 \ 0 @ 3× 0000100 233º004 \ 0é003 \ 0 \ 0&\ 0 032 \ f O 2 7 \ 0 0000120 \ 0 \ 0 osfeu 1→002 3 001é235 0000140 \ 0 \ 0 035003 \ 0 @ 3×233º004 \ 0Ñ\ a \ 0 \ 0 0000160ä\ 0 032 \ f E r \ 0 \ 0 \ 0 osfap 1
如何解密呢?
我什至试过 hexdump -C filename
输出如下:
00000000 1e 00 1a 04 53 44 00 00 00 00 73 65 71 31 20 20 | .... SD .... seq1 | 00000010 20 20 00 00 00 00 00 00 00 00 00 09 00 f3 02 33 01 | .....ó.3。| 00000020 26 00 1a 0c 4f 32 06 00 00 00 6f 73 66 75 73 31 |&... O2 .... osfus1 | 00000030 20 20 f3 02 33 01 ff 0d 00 00 09 00 00 40 33 d7 | ó.3.ÿ...... @ 3×| 00000040 9b ba 04 00 e9 03 00 00 26 00 1a 0c 4f 32 37 00 |.º..é...&... O27。| 00000050 00 00 6f 73 66 65 75 31 20 20 f3 02 33 01 e9 9d | ..osfeu1ó.3.é.| 00000060 00 00 1d 03 00 40 33 d7 9b ba 04 00 d1 07 00 00 | ..... @ 3×.º..Ñ... | 00000070 e4 00 1a 0c 4f 72 45 00 00 00 6f 73 66 61 70 31 |ä... OrE ... osfap1 |
为了明确起见,作为常规文件的主文件具有一个正在显示的属性,该属性具有某种怪异的格式,因此我们正在查看原始文件/二进制文件。
对常规文件进行八进制转储,解决了查看问题。
使用grep 'id=123' regular_file | head -1 | od -c
,我可以看到那里的电话号码。我期望1,它对我们显示为001。
not text
在该ASCII视图中,并不表示读取文件的程序是ASCII。例如。数字7957706749327538292被编码为64位Little-Endian无符号整数时。在ASCII视图中看起来像这样:not text
。