CrackMe: CrackMe by [Great]
Цель: найти верный пароль
Сложность: средне
Решение:
Выложу сам свое решение нормальное

Во-первых прога запакована UPX'ом, поэтому быстро распаковываем.
Открываем прогу в олли, ждем окончания анализа, запускаем по F5, и.... она закрывается. Причем вместе с олли. Аналогичная фишка и в других отладчиках, например, встроенном в MS Visual Studio. Что-то тут не так

Вообще можно обойтись плагином IsDebuggerPresent hide для олли, но ввиду того, что он есть не у всех, мы пойдем влоб)
Код:
004010B5 |. B8 01000000 MOV EAX, 1
004010BA |. 40 INC EAX
004010BB |. 68 8C114000 PUSH ucrackme.0040118C
004010C0 |. 64:8B40 FE MOV EAX, DWORD PTR FS:[EAX-2]
004010C4 |. 50 PUSH EAX
004010C5 |. 64:8925 00000>MOV DWORD PTR FS:[0], ESP
Это, очевидно, установка SEH, только слегка измененная, чтобы Олли её не опознал, как таковую

Дальше идет код, который всегда вызовет исключение нарушения доступа, слегка замаскированный. Поэтому просто ставим бряк на 0040118c и жмем F9(Run). Брякаемся на 40118c. Идет расшифровка строк kernel32.dll и IsDebuggerPresent и запуск этой функции:
Код:
0040120F . FF55 FC CALL DWORD PTR [EBP-4] ; kernel32.IsDebuggerPresent
Конечно же, без плагина, она возвратит 1. Смело ставим в EAX 0 и двигаемся дальше. Нопим call EnumWindows, т.к. она ищет окно Olly и грохает его. Подходим к DialogBoxParamA. DlgProc устроена так, что после нажатия ОК она возвращает указатель на строку и дропает окно. Поэтому вводим что-нибудь и нажимаем ОК. Видим:
Код:
004012DA . 68 90304000 PUSH ucrackme.00403090 ; ASCII "ertwrwe"
004012DF . E8 DC010000 CALL ucrackme.004014C0
004012E4 . 83C4 04 ADD ESP, 4
004012E7 . 8BF0 MOV ESI, EAX
004012E9 . 68 64304000 PUSH ucrackme.00403064 ; ASCII "rqugvPo`ac[mehgvPrduqsnva"
004012EE . E8 CD010000 CALL ucrackme.004014C0
004012F3 . 83C4 04 ADD ESP, 4
004012F6 . 3BF0 CMP ESI, EAX
ertwrwe - это введено в поле. Очевидно, это сравнене длин. Смело нопим, чтобы не мешало или просто ставим курсор на инструкцию JE, Ctrl-*, делаем флаг Z=1. Перескакиваем вывод ругательства из-за неправильной длины. Далее идет цикл проверки:
Код:
00401365 . 0FBE8A 903040>MOVSX ECX, BYTE PTR [EDX+403090]
0040136C . 8B45 F8 MOV EAX, DWORD PTR [EBP-8]
0040136F . 33D2 XOR EDX, EDX
00401371 . BE 0B000000 MOV ESI, 0B
00401376 . F7F6 DIV ESI
00401378 . 0FBE92 803040>MOVSX EDX, BYTE PTR [EDX+403080]
0040137F . 33CA XOR ECX, EDX
00401381 . 0FBEC1 MOVSX EAX, CL
00401384 . 8B4D F8 MOV ECX, DWORD PTR [EBP-8]
00401387 . 0FBE91 643040>MOVSX EDX, BYTE PTR [ECX+403064]
0040138E . 3BC2 CMP EAX, EDX
Самый обычный XOR циклически с ключем. Расшифровывая быстренько правильный пароль, получим super_mega_lamer_password.
Перезапускаем, вводим super_mega_lamer_password и Registration completed!