Тема: Solutions
Показать сообщение отдельно

hiddCrackMeImp
  #3  
Старый 09.01.2007, 23:51
taha
Постоянный
Регистрация: 20.08.2006
Сообщений: 327
Провел на форуме:
2472378

Репутация: 1077
По умолчанию hiddCrackMeImp


CrackMe: hiddCrackMeImp
Цель: найти последовательность действий для регистрации
Сложность: средне
Решение:

Запускаем, видим функцию. Нужно зайти, тк лично у меня по f8 прога упала.

Код:
00401BB7 > E8 16000000      CALL HidCreck.00401BD2
Трейсим, функция преобразовывается налицо. И получается следующий цикл который тоже что то расшифровывает.

Код:
00401BE2   8D41 FF          LEA EAX,DWORD PTR DS:[ECX-1]
00401BE5   83E0 0F          AND EAX,0F
00401BE8   8A0428           MOV AL,BYTE PTR DS:[EAX+EBP]
00401BEB   30040E           XOR BYTE PTR DS:[ESI+ECX],AL
00401BEE  ^E2 F2            LOOPD SHORT HidCreck.00401BE2
Пройдя этот цикл и mov следующий за ним переж нами появится ret.

Код:
00401BF3   C3               RETN
Пройдя его, мы идём дальше. И после прохода следующей функции

Код:
00401009   E8 02040000      CALL HidCreck.00401410
,мы видим, что подгружаются новые библиотеки. Это даёт нам право предполагать, что внутри лежит загрузчик и импортёр апи. Перезапускаемся и заходим в функцию. Поанализировав её, мы замечаем следующие строки:

Код:
0040143E   66:8338 8B       CMP WORD PTR DS:[EAX],0FF8B
00401442   75 03            JNZ SHORT HidCreck.00401447
Если первые байты апи mov edi,edi (0FF8B), то они пропускается, что дезориентирует Олю. Просто перебиваем условный на безусловный переход. И ставим бряк на cmp. Жмём f9, в eax появляются загружаемые функции. Ищем что-нибудь подозрительное. И находим))).

Код:
EAX 77D48666 user32.RegisterHotKey
Единственная функция получения данных)). И слава Богу)) Далее я полез в Executable Modules (Ctrl-E) > user32.dll > ctrl-N > RegisterHotKey. Ставим бряк на первый байт. F9. Сработало моментально:

Код:
0006F848   00401BB5  /CALL to RegisterHotKey from HidCreck.00401BB0
0006F84C   003204CE  |hWnd = 003204CE (class='HiddenClass')
0006F850   00000001  |HotKeyID = 1
0006F854   00000007  |Modifiers = MOD_ALT|MOD_CONTROL|MOD_SHIFT
0006F858   00000075  \Key = VK_F6
Нужно нажать Ctrl-Alt-Shift-F6. Жмём в Olly F9, и полученную комбинацию в окне крякмиса. И снова брякаемся на апи.

Код:
0006FD80   00401BB5  /CALL to RegisterHotKey from HidCreck.00401BB0
0006FD84   003204CE  |hWnd = 003204CE (class='HiddenClass')
0006FD88   00000001  |HotKeyID = 1
0006FD8C   00000007  |Modifiers = MOD_ALT|MOD_CONTROL|MOD_SHIFT
0006FD90   00000072  \Key = VK_F3
Нужно нажать Ctrl-Alt-Shift-F3.

Код:
0006FD80   00401BB5  /CALL to RegisterHotKey from HidCreck.00401BB0
0006FD84   003204CE  |hWnd = 003204CE (class='HiddenClass')
0006FD88   00000001  |HotKeyID = 1
0006FD8C   00000007  |Modifiers = MOD_ALT|MOD_CONTROL|MOD_SHIFT
0006FD90   00000077  \Key = VK_F8
Нужно нажать Ctrl-Alt-Shift-F8

Код:
0006FD80   00401BB5  /CALL to RegisterHotKey from HidCreck.00401BB0
0006FD84   003204CE  |hWnd = 003204CE (class='HiddenClass')
0006FD88   00000001  |HotKeyID = 1
0006FD8C   00000007  |Modifiers = MOD_ALT|MOD_CONTROL|MOD_SHIFT
0006FD90   00000074  \Key = VK_F5
Нужно нажать Ctrl-Alt-Shift-F5

Ну вот!! registred))

Лично мой путь был более длинным(( Я ставил бряк на CreateWindowExA, искал функцию окна, там нашол сравнение при получении uMsg равного 111h и ток потом до меня допёрло, для чего нужна была эта функция. Я просто не ждал, что регистрация будет проходить так необычно))
 
Ответить с цитированием