2
是否有一個Linux工具可以找到二進制文件中以十六進制表示形式給出的位序列,無論這些位在文件中如何對齊?用於在二進制文件中查找十六進制序列的工具
例如:我想在一個二進制文件中找到兩個字節的長序列f2 40
。可以使用hd
和grep
輕鬆找到完美對齊的表示形式f2 40
。但我也想找到01 e4 80
,d3 e4 81
或ff e4 80
(其中全部包括f2 40
向左移一位)。
是否有一個Linux工具可以找到二進制文件中以十六進制表示形式給出的位序列,無論這些位在文件中如何對齊?用於在二進制文件中查找十六進制序列的工具
例如:我想在一個二進制文件中找到兩個字節的長序列f2 40
。可以使用hd
和grep
輕鬆找到完美對齊的表示形式f2 40
。但我也想找到01 e4 80
,d3 e4 81
或ff 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'
您可能要提高過濾器來打印地址標識(如xxd
或od
用於八進制/右轉儲)。或者,您可以在C++中進行匹配。
感謝您的回答。我想自己寫一個簡單的腳本/工具。但是,我的問題是,如果已經有這樣一個工具。 – MBober
@MBober:我想你有我的答案:) – sehe
讓我們保持這一點沒有答案,看看有沒有人提到一個已經存在的工具。如果不是,我會接受你的答案。 – MBober