Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Изменить байт в файле по смещению. (http://forum.oszone.net/showthread.php?t=184162)

semiono 29-08-2010 18:41 1484319

Изменить байт в файле по смещению.
 
Известно смещение 0x2cb. Нужно исходный байт 01 установить в 00.
Размер файла примерно 12,8 KB (13*155 bytes).
Это конфиг программы, который устанавливает главное окно в MAXIMIZED.
Интересно, насколько это под силу для скрипта.

Фактически написание патча, но не крека! :)

amel27 29-08-2010 20:25 1484389

если файл легко помещается в RAM, то где-то так:
Код:

$sFile = "c:\TEST\file.bin"
$pFile = 0x2cb
$iFile = 0

$zFile = FileGetSize($sFile)
$hFile = FileOpen($sFile,16)
$tFile = DllStructCreate("byte["& $zFile &"]")
DllStructSetData($tFile, 1, FileRead($hFile,$zFile))
DllStructSetData($tFile, 1, $iFile, $pFile+1)
FileClose($hFile)

$hFile = FileOpen($sFile,18)
FileWrite($hFile, DllStructGetData($tFile,1))
FileClose($hFile)


Yashied 29-08-2010 22:57 1484484

Код:

$hFile = FileOpen('C:\TEST\test.bin', 1 + 16)
FileSetPos($hFile, 0x02CB, 0)
FileWrite($hFile, Binary('0x01'))
FileClose($hFile)



Время: 11:38.

Время: 11:38.
© OSzone.net 2001-