2011-11-23 66 views
2

是否有一個Linux工具可以找到二進制文件中以十六進制表示形式給出的位序列,無論這些位在文件中如何對齊?用於在二進制文件中查找十六進制序列的工具

例如:我想在一個二進制文件中找到兩個字節的長序列f2 40。可以使用hdgrep輕鬆找到完美對齊的表示形式f2 40。但我也想找到01 e4 80,d3 e4 81ff e4 80(其中全部包括f2 40向左移一位)。

回答

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用於八進制/右轉儲)。或者,您可以在C++中進行匹配。

+0

感謝您的回答。我想自己寫一個簡單的腳本/工具。但是,我的問題是,如果已經有這樣一個工具。 – MBober

+0

@MBober:我想你有我的答案:) – sehe

+0

讓我們保持這一點沒有答案,看看有沒有人提到一個已經存在的工具。如果不是,我會接受你的答案。 – MBober