以你所說的操作大約是
open (my $fp, '+<', 'x.dat');
binmode ($fp);
seek ($fp, 0, 0x80);
print $fp "\x0";
seek ($fp, 0, 0x82);
print $fp "\x0";
seek ($fp, 0, 0x84);
print $fp "\x0";
seek ($fp, 0, 0x86);
print $fp "\x8B";
seek ($fp, 0, 0x87);
print $fp "\x8B";
seek ($fp, 0, 0x88);
print $fp "\x0A";
seek ($fp, 0, 0x89);
print $fp "\x0A";
....
....
....
close ($fp);

-------- Original Message --------
Subject: [PerlChina] Re: 16进制文件操作
From: perlw01f <[email protected]>
To: PerlChina Mongers 讨论组 <[email protected]>
Date: 7/8/2009 21:16
> 都是在确定的位置
>
> 如 00000080h 这一栏 第1 3  5 字节换为0 78换为8B  9 10 换为0A 还有一些其他的
>
>
> On 8月7日, 下午9时04分, Anthony WU <[email protected]> wrote:
>   
>> 你的字節是定位修改的嗎?有什麼規律的?
>>
>>
>>
>> -------- Original Message --------
>> Subject: [PerlChina] Re: 16进制文件操作
>> From: perlw01f <[email protected]>
>> To: PerlChina Mongers 讨论组 <[email protected]>
>> Date: 7/8/2009 20:56
>>     
>>> 我有一个文件 x.dat,由x.rar.gz压缩而成 但是其中某些字节做了修改处理 现在的文件名是 a.dat
>>> 现在 我想逆行操作,即
>>> 先将a.date rename成x.rar.gz 然后利用ue修改某些字节 之后才能解压缩成x.date
>>>       
>>> 由于文件数量较多 且ue 16进制 修改也不是很方便
>>> 所以想 用 perl实现
>>> 谢谢
>>>       
>>> On 8月7日, 下午5时17分, cnhack TNT <[email protected]> wrote:
>>>       
>>>> 能举例说明你要做的事情么?
>>>>         
>>>> 2009/8/7 perlw01f <[email protected]>
>>>>         
>>>>> perl中 有没有类似ultredit中那种直接转换成16进制进行操作的方法或者module
>>>>>           
>>>>> unpack是不是太费事了
>>>>>           
>> --
>> Best Regards,
>>         Anthony WU
>>     
> >
>   

-- 
Best Regards,
        Anthony WU


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复