Войти

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


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

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

amel27
29-08-2010, 20:25
если файл легко помещается в 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
$hFile = FileOpen('C:\TEST\test.bin', 1 + 16)
FileSetPos($hFile, 0x02CB, 0)
FileWrite($hFile, Binary('0x01'))
FileClose($hFile)




© OSzone.net 2001-2012