是否有命令行 Linux 工具可以查找并替换二进制文件中的十六进制数据?示例用法?
例如:'s/00FF00FFFF06500B49/11BB00BFFF06500B49/g'
答案1
Perl 脚本:
my $find_packed = pack "H*", '0100000000000000FF0A16731485400000000000FFA10201FF22FFFFFFFF0200';
my $repl_packed = pack "H*", '0100000000000000FF0A16731485400010FFC545FFA10201FF22FFFFFFFF0200';
my $file = do { local $/; <> };
$file =~ s/\Q$find_packed/$repl_packed/g;
print $file;
用法:
perl hexreplace.pl in_binary > out_binary
上面的未完善版本似乎对我有用,感谢#perl
freenode 上的伙计们 :-)