
09.01.2007, 23:53
|
|
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
С нами:
10381346
Репутация:
1077
|
|
First CrackMe by ProTeuS
CrackMe: First CrackMe by ProTeuS
Цель: найти верный пароль
Сложность: средне
link: http://www.forum.antichat.ru
Решение:
Запускаем, вводим чтонить!
Брякаемся по 004578AE.
Код:
004578AE 21 DB 21 ; CHAR '!'
004578AF A7 DB A7
004578B0 CD FE INT 0FE
004578B2 0D DB 0D
Первый вывод - зашифрованная функция. Следовательно в стеке должен лежать
адрес возврата (помимо SEH-обработчика). Смотрим в стек. Так оно и есть)).
Код:
0012F920 004579C5 RETURN to CrackMe.004579C5
Идём по адресу!!
Код:
004579B7 . 64:FF30 PUSH DWORD PTR FS:[EAX]
004579BA . 64:8920 MOV DWORD PTR FS:[EAX],ESP
004579BD . 8D05 AC784500 LEA EAX,DWORD PTR DS:[4578AC]
004579C3 . FFD0 CALL EAX ; <- Вот вызов криптованной функции
004579C5 . 33C0 XOR EAX,EAX
004579C7 . 5A POP EDX
Поднимимся выше. Видим интересные функции.
Код:
0045796C . E8 3FE5FAFF CALL <JMP.&kernel32.GetCurrentProcess> ; |[GetCurrentProcess
00457971 . 50 PUSH EAX ; |hProcess
00457972 . E8 51E6FAFF CALL <JMP.&kernel32.ReadProcessMemory> ; \ReadProcessMemory
...
004579A0 . E8 8BE6FAFF CALL <JMP.&kernel32.WriteProcessMemory> ; \WriteProcessMemory
Начало функции в которую мы попали:
Код:
0045793C . 55 PUSH EBP
0045793D . 8BEC MOV EBP,ESP
0045793F . 83C4 F0 ADD ESP,-10
00457942 . 53 PUSH EBX
00457943 . 56 PUSH ESI
Ctrl-F2(перезапускаемся). Ctrl-G > 0045793C. Ставим бряк. F9.
Вводим чтонить. И брякаемся. Дальше трейсим.
Код:
0012F5F8 00457977 /CALL to ReadProcessMemory from CrackMe.00457972
0012F5FC FFFFFFFF |hProcess = FFFFFFFF
0012F600 004578AC |pBaseAddress = 4578AC
0012F604 0045AC03 |Buffer = CrackMe.0045AC03
0012F608 00000001 |BytesToRead = 1
0012F60C 0012F61C \pBytesRead = 0012F61C
4578AC - не далеко от адреса по которому упала прога. Истина гдето рядом))
Код:
0045798D . 3013 XOR BYTE PTR DS:[EBX],DL
____________________________________
DL=01
DS:[0045AC03]=99
Настоящее начало криптованной функции. В 90% случаях функции начинаются
с push ebp. Алго криптования нам известен)). 99 xor 55 = 0CCh = 204d
Пасс: 204
|
|
|