|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите с бинарными файлами ?
Подскажите можно как-нибудь в бинарном файле найти слово (байт) и изменить его .
Есть файл myFile.exe при нажатии на кнопку надо что - бы искался байт в котором слово "example" и его надо поменять на другое слово и сохранить в myfile.exe |
#2
|
||||
|
||||
Найти нужное сочетание буковок несложно, но вот замена этих буковок на что-то другое в экзешнике - это всегда большая вероятность угробить его.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Самый простой способ - влоб решить проблему:
Код:
var f : file of byte; c : integer; b : byte; wrd : string[7]; begin assignfile(f,'myfile.exe'); reset(f); for c := 1 to filesize(f)-6 do begin seek(f,c); read(f,b); wrd[1] := chr(b); seek(f,c+1); read(f,b); wrd[2] := chr(b); seek(f,c+2); read(f,b); wrd[3] := chr(b); seek(f,c+3); read(f,b); wrd[4] := chr(b); seek(f,c+4); read(f,b); wrd[5] := chr(b); seek(f,c+5); read(f,b); wrd[6] := chr(b); seek(f,c+6); read(f,b); wrd[7] := chr(b); if wrd = 'example' then begin wrd := '7654321'; seek(f,c); write(f,ord(wrd[1])); seek(f,c+1); write(f,ord(wrd[2])); seek(f,c+2); write(f,ord(wrd[3])); seek(f,c+3); write(f,ord(wrd[4])); seek(f,c+4); write(f,ord(wrd[5])); seek(f,c+5); write(f,ord(wrd[6])); seek(f,c+6); write(f,ord(wrd[7])); break; end; end; closefile(F); end; Последний раз редактировалось dissident, 12.09.2009 в 09:46. |