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