37,721
社区成员
发帖
与我相关
我的任务
分享
#!/usr/bin/perl -w
die("Usage: $0 <filename>") if(@ARGV<1);
open(FH, "+>",$ARGV[0]) or die $!;
binmode FH;
for ($i=0; $i< 0x20; $i++)
{
$v=chr(0);
print FH $v;
}
$v=pack "H*","12345678";
seek FH,0x10, 0;
print FH $v
# l A signed long (32-bit) value.
# L An unsigned long value.
# q A signed quad (64-bit) value.
# Q An unsigned quad value.
# (Quads are available only if your system supports 64-bit
# integer values _and_ if Perl has been compiled to support those.
# Causes a fatal error otherwise.)
# i A signed integer value.
# I A unsigned integer value.
# (This 'integer' is _at_least_ 32 bits wide. Its exact
# size depends on what a local C compiler calls 'int'.)
# n An unsigned short (16-bit) in "network" (big-endian) order.
# N An unsigned long (32-bit) in "network" (big-endian) order.
# v An unsigned short (16-bit) in "VAX" (little-endian) order.
# V An unsigned long (32-bit) in "VAX" (little-endian) order.
my $buff=pack("L",0x12345678);#以网络字节顺序保存
use strict;
use warnings;
use IO::File;
my $buff=chr(0x12).chr(0x34).chr(0x56).chr(0x78);
my $f=new IO::File('F:\A.bin','r+');
$f->binmode();
$f->seek(0x10,SEEK_SET);
$f->syswrite($buff,4);