damien2008
Осваивающий
- Сообщения
- 178
- Репутация
- 34
AutoIt: 3.3.8.1
Версия: 1.0
Лицензия:
Категория: Кодирование, Файловая, (HEX, Binary)
Описание:
понадобился небольшой патчер бинарных файлов. (может кому пригодится)
вот нашел на английском, ссылка.
тут не нашел, поэтому решил добавить сюда.
Код/Пример:
Источник: autoit-script.ru
Автор(ы): smashly, перевод damien2008
Версия: 1.0
Лицензия:
Категория: Кодирование, Файловая, (HEX, Binary)
Описание:
понадобился небольшой патчер бинарных файлов. (может кому пригодится)
вот нашел на английском, ссылка.
тут не нашел, поэтому решил добавить сюда.
Код/Пример:
Код:
; наглядно посмотреть hex строку можно с помощью двоичного редактора, например WinHex
$1 = FileOpen(@ScriptDir & "\orig.txt", 2) ;запишем в новый файл данные, которые будем менять
FileWrite($1, "Autoit ROCKS!")
FileClose($1)
$sInFile = @ScriptDir & "\orig.txt" ; начальный файл
$sFind = "524F434B53" ; MSFT 5.0 hex значение которое будем менять
$sReplace = "5448452042455354" ; внезапно! новое значение, которое пропишем
$sOutFile = @ScriptDir & "\patched.txt" ; выходной файл
_BinaryReplace($sInFile, $sFind, $sReplace, $sOutFile)
Func _BinaryReplace($sInFile, $sFind, $sReplace, $sOutFile)
Local $FO, $FR
$FO = FileOpen($sInFile, 16) ; принудительное открытие первого файла, бинарное (по байтам) чтение
$FR = FileRead($FO) ; читаем файл в новую переменную
FileClose($FO) ; закрываем открытый прочитанный файл
$FR = StringReplace($FR, $sFind, $sReplace, 1); находим и меняем hex строку
$FO = FileOpen($sOutFile, 18) ; открываем новый файл в режиме бинарной записи 16+2
FileWrite($FO, $FR) ; записываем новое значение
FileClose($FO) ; закрываем созданный файл
EndFunc
; можно сравнить два файла с помощью WinMerge
Источник: autoit-script.ru
Автор(ы): smashly, перевод damien2008