我试验了一下,只要你的位置确定的和准确的,字符串替换法是可行的。
$nstr=StringReplace($FileString,$i,"FC")
关键是位置$I一定要准确,不知你的$i是怎么得来的。$FilePath = "173242.rar"
$FileHwnd = FileOpen ($FilePath, 16)
$FileString = FileRead($FileHwnd)
FileClose($FileHwnd)
$nstr=StringReplace($FileString,17,"FC")
$FileHwnd = FileOpen ($FilePath&".bak", 2+16)
FileWrite($FileHwnd,$nstr)
FileClose($FileHwnd)
Exit
这是生成后的差异比较结果:
查找差异
1. D:\173242.rar: 541,602 字节
2. D:\173242.rar.bak: 541,602 字节
Offsets: 16 进制
7: CF FC
1 差异 找到。
其位置数据很重要,17,实际是第7字节的第一位置,算下来是第15位置(从0偏移开始计算),加上字符串前面的“0x”就是正确的位置17了。。。
[ 本帖最后由 顽固不化 于 2008-6-30 21:51 编辑 ] |