linux在二进制文件中查找pattern的offset

参考:http://stackoverflow.com/questions/14141008/grep-offset-of-ascii-string-from-binary-file

strings -a -t x filename | grep foobar

 

daniel@daniel-mint ~/latex/linux/itext/daniel $ hexdump -C asm_daniel_obj_2.bin 
00000000  32 20 30 20 6f 62 6a 0a  3c 3c 2f 4c 65 6e 67 74  |2 0 obj.<</Lengt|
00000010  68 20 39 36 2f 46 69 6c  74 65 72 2f 46 6c 61 74  |h 96/Filter/Flat|
00000020  65 44 65 63 6f 64 65 3e  3e 73 74 72 65 61 6d 0a  |eDecode>>stream.|
00000030  78 9c 2b e4 72 0a e1 32  36 53 30 33 34 52 08 49  |x.+.r..26S034R.I|
00000040  e1 32 50 d0 35 b4 00 31  f4 dd 0c 15 40 42 69 5c  |.2P.5..1....@Bi\|
00000050  1a 1e a9 39 39 f9 0a e1  f9 45 39 29 8a 0a 10 4e  |...99....E9)...N|
00000060  40 6a 7e 41 4e 2a 8c 17  9c 5d 09 67 96 e6 c1 98  |@j~AN*...].g....|
00000070  be f9 f9 30 b6 66 48 16  d0 64 03 14 0b 34 82 4b  |...0.fH..d...4.K|
00000080  12 8b 8a 15 91 a4 5c 43  b8 02 b9 00 fc 98 26 ef  |......\C......&.|
00000090  0a 65 6e 64 73 74 72 65  61 6d 0a 65 6e 64 6f 62  |.endstream.endob|
000000a0  6a 0a                                             |j.|
000000a2

  

  

 

daniel@daniel-mint ~/latex/linux/itext/daniel $ grep -Ubo --binary-file=text stream asm_daniel_obj_2.bin 
41:stream
148:stream

  

查找单个字符

daniel@daniel-mint ~/latex/linux/itext/daniel $ hexdump -v -e "1/1 \" %02x\n\"" asm_daniel_obj_2.bin | grep -n '0a'
8: 0a
48: 0a
54: 0a
87: 0a
94: 0a
145: 0a
155: 0a
162: 0a

  

posted @ 2014-08-21 17:31  Daniel King  阅读(968)  评论(0编辑  收藏  举报