![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |