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

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

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

Создано: 23 декабря 2009 15:08
· Личное сообщение · #1

началось с простого, хотел для своей проги сделать кряк, помню что в регистр EAX забивается ссыль на верный пасс, нашел исходник проги, типа по адресу находим то что записано в регистре, т.е. то что например по адресу 00401334 PUSH CRACKME4.00403284, но на самом деле нужен адрес $00403284

Code:
  1. 0040132A  |> \C607 00       MOV BYTE PTR DS:[EDI], 0
  2. 0040132D  |.  33C0          XOR EAX, EAX
  3. 0040132F  |.  83F9 00       CMP ECX, 0
  4. 00401332  |.  74 1A         JE SHORT CRACKME4.0040134E
  5. 00401334  |.  68 84324000   PUSH CRACKME4.00403284                   ; /String2 = "XZX"
  6. 00401339  |.  68 84314000   PUSH CRACKME4.00403184                   ; |String1 = ""
  7. 0040133E  |.  E8 A1000000   CALL <JMP.&KERNEL32.lstrcmpA>            ; \lstrcmpA


Вопрос в том, как мне прочитать то что находится в регистре (или по адресу $00401334),
Кодю на Дельфи.

Заранее благодарен.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 23 декабря 2009 15:22
· Личное сообщение · #2

ReadProcessMemory 00403284



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

Создано: 23 декабря 2009 16:31
· Личное сообщение · #3

например

$0040130 cmp EAX, ESI, где в EAX $00403284


SuspendThread(hThread);
GetThreadContext(PI.hThread,Context);
ReadProcessMemory(hProcess,Pointer($0040130),Buff,50,xCardinal);

это тут не работает, т.к. надо изначально знать адрес $00403284,

т.е. будет правильно
ReadProcessMemory(hProcess,Pointer($00403284),Buff,50,xCardinal);



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

Создано: 23 декабря 2009 16:47
· Личное сообщение · #4

ReadProcessMemory(hProcess,Pointer(Context.EAX),Buff,50,xCardinal);
скорее всего так




Ранг: 67.4 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 23 декабря 2009 16:56
· Личное сообщение · #5

MOV EAX,[00401334] ?

Не понял что нужно, или ReadMemory заюзай как уже сказали




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 23 декабря 2009 18:08
· Личное сообщение · #6

Code:
  1. ReadProcessMemory(hProcess,Pointer(Context.EAX),Buff,50,xCardinal ); // читаешь из Eax 50 байтов


Не совсем понял тебя, но все зависит от твоей задачи...

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 23 декабря 2009 18:40
· Личное сообщение · #7

Ну прочитай сначала по адресу 00401335, получишь свой 00403284 и читай уже по нему, что надо.
Задал детский вопрос, с которым самому тупо лень ковыряться. Сам спрашивает-сам отвечает, причём вопросом у себя же. Детский сад какой-то.


 eXeL@B —› Вопросы новичков —› Прочитать из регистра
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати