Сейчас на форуме: ut2004, vsv1 (+8 невидимых)

 eXeL@B —› Вопросы новичков —› патч
Посл.ответ Сообщение

Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 августа 2006 01:47
· Личное сообщение · #1

Объясните пожалуйста, как можно програмным способом изменить онин (или более) байт в программе?



Ранг: 123.7 (ветеран)
Активность: 0.10
Статус: Участник
1nn0$/100

Создано: 24 августа 2006 02:31
· Личное сообщение · #2

korasik ну например открыть файл с возможностью записи, дойти до нужного байта, записать нужное значение, закрыть файл...

-----
Blame the victim!




Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 24 августа 2006 09:42
· Личное сообщение · #3

Опиши точнее свой вопрос.... если в памяти надо прогу поправить, то ReadProcess, а если сам ехе, то можно например _lopen,_lwrite



Ранг: 3.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 августа 2006 17:10
· Личное сообщение · #4

reversing.kulichki.com/files/patch/cogen.rar
Вот тебе патчегенератор.
Он генерит исходник на асме, за одно и разберёшься...




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 01 сентября 2006 18:49
· Личное сообщение · #5

А HIEV начто,класная прога!!!Для небольших изменений самое то,конечно если знаеш где и начто изменить.Он есть на этом сайте (СКАЧАТЬ \ Инструменты крэкера\hiew 7.10)

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 36.9 (посетитель)
Активность: 0.050
Статус: Участник

Создано: 02 сентября 2006 01:05
· Личное сообщение · #6

MACKLIA пишет:

А HIEV начто,класная прога!!!Для небольших изменений самое то,конечно если знаеш где и начто изменить.Он есть на этом сайте (СКАЧАТЬ \ Инструменты крэкера\hiew 7.10)

Ему похоже нужно было изменять эти байты из своей проги, а не какими-то инструментами..



Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 сентября 2006 02:52
· Личное сообщение · #7

Берешь WinHex, в отладчике ищешь последовательность байт, которую надо менять, грузишь прогу в WinHex, ищешь эту последовательность, меняешь байтик (выделив его и нажав нужную букву/цифру на клавиатурке), сохраняешь в файле с расширением EXE. Усе...



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 02 сентября 2006 09:37
· Личное сообщение · #8

C помощью CreateFile открываешь нужный тебе exe'шник с флагом GENERIC_WRITE. Далее, с помощью функции SetFilePointer переходишь на нужный адрес. После перехода с помощью WriteFile пишешь в файл нужные тебе байты после чего CloseHandle, чтобы закрыть файл.



Ранг: 2.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 сентября 2006 01:44
· Личное сообщение · #9

[norwed], а ведь с HEX-редакторами куда проще.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 03 сентября 2006 03:32
· Личное сообщение · #10

RS_Briz пишет:
а ведь с HEX-редакторами куда про

Тов. korasik думал, что есть функция Записать(куда,откуда,сколько). Его наверное щука с"ела



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 04 сентября 2006 02:51
· Личное сообщение · #11

RS_Briz
korasik пишет:
как можно програмным способом

Прочитай ещё раз вопрос.



Ранг: 3.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 сентября 2006 13:01
· Личное сообщение · #12

korasik
а ты не можешь выложить прогу и обьяснить конкретно в чем дело ?



Ранг: 15.6 (новичок)
Активность: 0.030
Статус: Участник

Создано: 11 сентября 2006 05:13
· Личное сообщение · #13

FrOsT_CG, прочитай вопрос. Зачем тебе прога? Тебя спрашивают как сделать патч!




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 18 сентября 2006 06:50
· Личное сообщение · #14

Объясните пожалуйста, как можно програмным способом изменить онин (или более) байт в программе?
korasik
Отвечаю чёико на поставленный вопрос:
MOV BYTE PTR [XXXXXXXX],01
где ХХХХХХХХ - адрес, покотрому надо записать байт, а 01 - новое значение байта, но может быть другим

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 9.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 20 сентября 2006 11:58
· Личное сообщение · #15

Delphi:
procedure TfrmMain.btnPatchClick(Sender: TObject);
var
inFstr: string;
inF: file;
buf: byte;
begin
inFstr:='c:\windows\system32\C_866.NLS';
if FileExists(inFstr) then
begin
AssignFile(inF,inFstr);
Reset(inF,1);
Seek(inF,$828);
BlockRead(inF, buf, 1);
if Buf=$3F then
begin
buf:=$49;
Seek(inF,$828);
BlockWrite(inF, buf, 1);
end;
CloseFile(inF);
MessageDlg('Исправление успешно завершено!',
mtInformation,[mbOk],0);
close;
end
else
begin
MessageDlg('Ошибка исправления. Возможно вы используете операционную систему класса Win9x',
mtError,[mbOK],0);
exit;
end;




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 20 сентября 2006 12:15
· Личное сообщение · #16

st_slayer пишет:
MessageDlg('Ошибка исправления. Возможно вы используете операционную систему класса Win9x',
mtError,[mbOK],0);


помоему не к чему так пользовотеля пугать) лучше просто сказать, дескать файл занят, писать в него нельзя

-----
[nice coder and reverser]



 eXeL@B —› Вопросы новичков —› патч
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати