Что нового

Добавить определенное количество байт в HEX

Ferrous

Новичок
Сообщения
1
Репутация
0
Всем привет! Помогите пожалуйста. Есть файл нужно в него добавить в хекс 64 байта f , причем через каждые 2048 байт. То есть должно быть примерно так : начало файла - это нулевое смещение и через 2048 байт выставить (начиная со смещения 2048) 64 байта f и так далее , потом опять после +2048 ( смещения уже будет 4160) 64 байта f и так до конца. Можно конечно в хекс редакторе это сделать в ручную , но выставлять больше 6 тыч раз - это немыслимо.
 

Вложения

  • Снимок.JPG
    Снимок.JPG
    131.7 КБ · Просмотры: 4

Prog

Продвинутый
Сообщения
604
Репутация
77
Это проще будет сделать создав новый файл, в который скопировали 2048 байт из имеющегося, после вставили 64 байта FF. Потом скопировали следующие 2048 байт, а за ними добавили 64 байта FF. И так дальше.
 

joiner

Модератор
Локальный модератор
Сообщения
3,561
Репутация
629
возможно, так
Код:
Local $sFileS = @ScriptDir & '\start.exe';исходный файл
Local $sFileD = @ScriptDir & '\Dest.exe';этот же файл с изменениями
Local $hFileS = FileOpen($sFileS, 16)
Local $hFileD = FileOpen($sFileD, 26)
Local $sBinary
While Sleep(10)
    $sBinary &= 'я'
    If BinaryLen($sBinary) = 64 Then ExitLoop
WEnd
Local $bReadS, $iPosS, $iPosD
While Sleep(10)
    $bReadS = FileRead($hFileS, 2048)
    If @error = -1 Then ExitLoop
    $iPosS = FileGetPos($hFileS)
    FileSetPos($hFileS,$iPosS, 1)
    FileWrite($hFileD, $bReadS & $sBinary)
    $iPosD = FileGetPos($hFileD)
    FileSetPos($hFileD,$iPosD, 1)
WEnd
FileClose($hFileS)
FileClose($hFileD)
 
Верх