用于在二进制文件中定位十六进制序列的工具

时间:2011-11-23 14:41:41

标签: linux search binaryfiles

是否有Linux工具可以在二进制文件中找到以十六进制表示形式给出的位序列,无论这些位在文件中如何对齐?

示例:我想在二进制文件中找到两个字节长的序列f2 40。使用f2 40hd可以轻松找到完美对齐的代表grep。但我也希望找到01 e4 80d3 e4 81ff e4 80(其中包括f2 40左移一位)。

1 个答案:

答案 0 :(得分:3)

有趣的任务!

这是一个简单的1行C ++过滤器,您可以使用:

#include <bitset>
#include <iostream>

int main()
{
    for (char ch; std::cin.get(ch); std::cout << std::bitset<8>(ch));
}

像这样使用:

cat file.bin | binfilter | grep '1111001001000000'

您可能希望改进过滤器以打印地址标识(例如xxdod执行八进制/ dex转储。或者,您可以在C ++中进行匹配。