Сейчас на форуме: asfa, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Патчер для крекми #1 от Fantom'a
Посл.ответ Сообщение

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

Создано: 23 июля 2013 23:24 · Поправил: Max Payne
· Личное сообщение · #1

Всем привет. Захотелось написать патчер к crackme для тренировки взял первый crackme Fantom'a простенький но дело тут вовсе не в сложности самого crackme, а в написании кода патчера. Вот скрин из отладчика:

А вот код патчера (яп - делфи):
Code:
  1. program Patch;
  2.  
  3. uses
  4.   SysUtils, Windows;
  5.  
  6. var
  7.   f: file of Byte;
  8.   cw: Char;
  9. begin
  10.   AssignFile(f, 'CRACKME1.EXE');
  11. {$I-}Reset(f);
  12. {$I+}if IOResult <> 0 then
  13.     raise Exception.Create('File not found')
  14.   else
  15.   begin
  16.     CopyFile('CRACKME1.EXE', 'CRACKME1.EXE.BAK', True);
  17.     Seek(f, $00401299);
  18.     cw := Char($EB);
  19.     BlockWrite(f, cw, 1);
  20.     CloseFile(f);
  21.   end;
  22. end.

Само собой не работает Подскажите может ошибки какие допустил (ясно дело они есть раз не работает). Может кто предложит использовать API функции знаю знаю но и на этих же должно работать. Спасибо.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 23 июля 2013 23:39
· Личное сообщение · #2

Max Payne пишет:
$00401299

Это Virtual Address. А ф-ия Seek работает с оффсетом. Тебе нужно преобразовать VA to Offset.

-----
Лучше быть одиноким, но свободным © $me


| Сообщение посчитали полезным: Max Payne

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

Создано: 23 июля 2013 23:56
· Личное сообщение · #3

Не сочти за дерзость, но пролей свет на вышесказанное или может знаешь где почитать.




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 24 июля 2013 00:07
· Личное сообщение · #4

--> Link <--

-----
127.0.0.1, sweet 127.0.0.1


| Сообщение посчитали полезным: DenCoder, plutos, Abraham


Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 24 июля 2013 03:03
· Личное сообщение · #5

File Offset = RVA - Section Virtual Offset + Section Raw Offset

-----
Give me a HANDLE and I will move the Earth.


| Сообщение посчитали полезным: ARCHANGEL
 eXeL@B —› Вопросы новичков —› Патчер для крекми #1 от Fantom'a
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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