[решено] Изменить байт в файле по смещению.

Ответить
Аватара пользователя
semiono

[решено] Изменить байт в файле по смещению.

Сообщение semiono »

Известно смещение 0x2cb. Нужно исходный байт 01 установить в 00.

Размер файла примерно 12,8 KB (13*155 bytes).

Это конфиг программы, который устанавливает главное окно в MAXIMIZED.

Интересно, насколько это под силу для скрипта.



Фактически написание патча, но не крека! Изображение
Аватара пользователя
amel27

Re: [решено] Изменить байт в файле по смещению.

Сообщение amel27 »

если файл легко помещается в 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

Re: [решено] Изменить байт в файле по смещению.

Сообщение Yashied »

Код:

Код: Выделить всё

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

Вернуться в «AutoIt»