在二进制文件中查找hex序列的工具

是否有一个Linux的工具,在二进制文件中find一个以hex表示的位序列,无论这些位在文件中是如何alignment的?

例如:我想在一个二进制文件中find两个字节长的序列f2 40 。 使用hdgrep很容易find完美alignment的表示f2 40 。 但我也想find01 e4 80d3 e4 81ff e4 80 (其中包括f2 40向左移一位)。

有趣的任务!

这是一个简单的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 do)。 或者,您可以在C ++中进行匹配。