- 论坛徽章:
- 0
|
[要求]
如何把二进制文件中A开始偏移0x10开始的四个字节修改为0x12345678
[文件A]
修改前:
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
修改后:
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0010 78 56 34 12 00 00 00 00 00 00 00 00 00 00 00 00
[已经做的工作]
#!/usr/bin/env perl
$OFFSET = 16; # offset in file, in bytes
$VALUE = 0x12345678;
open(FH, "+<A") || die "can't update somewhere: $!";
binmode(FH);
seek(FH, $OFFSET , 0);
print FH $VALUE; #要修改的也就是这个地方了
close FH;
输出:
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0010 30 78 31 32 33 34 35 36 37 38 00 00 00 00 00 00
如果把那句print语句修改为print FH pack("H8",$VALUE);
那输出就变为:
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0010 01 12 34 56 00 00 00 00 00 00 00 00 00 00 00 00
请问如何修改才能达到我的要求呢?谢谢了! |
|