在文件中查找二进制块

时间:2009-05-12 21:32:54

标签: linux command-line binary

我有一大堆相当随机的二进制数据。我想找到文件中存在的块的位置,它发生的次数,以及在哪个字节(或扇区)偏移。关于如何做到的任何想法?

谢谢, 贾斯汀

3 个答案:

答案 0 :(得分:3)

我相信没有现有命令可以完全符合您的要求。如果您的块很小并且您的文件适合内存,则可以轻松编写自己的文件。只需扫描文件内容,在每个位置应用strncmp。

如果您的文件非常大但仍然适合您的地址空间,您可以使用mmap执行相同的操作。

如果你的块不小,你可能最好使用Boyer-Moore algorithm而不是strncmp。这仍然不是太多工作,因为已经有你可以使用的实现。

答案 1 :(得分:2)

我会建议X-Ways WinHex。我发现自己经常使用它来搜索硬盘驱动器或大磁盘映像文件上的任意数据。

答案 2 :(得分:0)

您可以使用grep

执行此操作

输出具有字节偏移量的行

grep --text --byte-offset 'ls' /bin/ls

添加--count参数以获取匹配总数。