Фундаментальные основы хакерства




Способ 1. Прямой поиск введенного пароля в памяти - часть 6


ОК, значит, и этот кандидат ушел лесом.

Остается последний адрес – 0x13FF18. Ничего он не напоминает? Постой-ка, постой. Какое было значение ESP при загрузке?! Кажется 0x13FFC4 или около того (внимание, в Windows 9x стек расположен совершенно в другом месте, но все рассуждения справедливы и для нее – необходимо лишь помнить местоположение стека в собственной операционной системе и уметь навскидку его узнавать).

Поскольку, стек растет снизу  вверх (т.е. от старших адресов к младшим), адрес 0x13FF18 явно находится в стеке, а потому очень сильно похож на наш буфер. Уверенность подогревает тот факт, что большинство программистов размешают буфера в локальных переменных, ну а локальные переменные, в свою очередь, размешаются компилятором в стеке.

Ну что, попробуем установить сюда бряк?

:bpm 23:13FF18

:x

Break due to BPMB #0023:0013FF18 RW DR3  (ET=369.65 microseconds)

  MSR LastBranchFromIp=0001144F

    MSR LastBranchToIp=00011156

001B:000110B0  MOV     EAX,[EDX]

001B:000110B2  CMP     AL,[ECX]     

001B:000110B4  JNZ     000110E4

001B:000110B6  OR      AL,AL

001B:000110B8  JZ      000110E0

001B:000110BA  CMP     AH,[ECX+01]

001B:000110BD  JNZ     000110E4

001B:000110BF  OR      AH,AH

И вот мы в теле уже хорошо нам знакомой (развивайте зрительную память!) процедуры сравнения. На всякий случай, для пущей убежденности, выведем значение указателей EDX и ECX, чтобы узнать, что с чем сравнивается:

:d edx

0023:0013FF18 4B 50 4E 43 2D 2D 0A 00-70 65 72 73 6B 79 2B 2B  KPNC Kaspersky++

:d ecx

0023:00016040 6D 79 47 4F 4F 44 70 61-73 73 77 6F 72 64 0A 00  myGOODpassword..

Ну, а остальное мы уже проходили. Выходим из сравнивающей процедуры по P RET, находим условный переход, записываем его адрес (ключевую последовательность для поиска), правим исполняемый файл и все ОК.

Итак, мы познакомились с одним более или менее универсальным способом взлома защит основанных на сравнении пароля (позже мы увидим, что он так же подходит и для защит, основанных на регистрационных номерах).


Содержание  Назад  Вперед