如何用perl修改一个二进制文件
[要求]
如何把二进制文件中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
请问如何修改才能达到我的要求呢?谢谢了!
如何把二进制文件中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
请问如何修改才能达到我的要求呢?谢谢了!
...全文
相关推荐
nRF24LE1_Programmer:用于在 Nordic nRF24LE1 无线 SOC 上编程闪存的 Arduino 草图和 Perl 脚本
nRF24LE1_Programmer 用于在 Nordic nRF24LE1 无线 SOC 上编程闪存的 Arduino 草图和 Perl 脚本
PERL脚本打包视频教材(Genesis)
视频详解PERL源代码封装EXE过程(PDK打包)
shell-perl-python等脚本文件加密工具
编写的shell 脚本、perl 脚本、python 脚本 等如果不想被别人看到原文件,可以使用该工具shc ,对脚本文件加密,
Perl(TK) Editor-开源
Perl 开发环境
activestate_perl_dev_kit_pro.zip
perl加密 perl转exe。



