Исследуем и затем имеем во все дыры MagicTweak 2.70

Перейти на главную страницу, индексную страницу.


Автор: TITBIT <titbit@hakeris.net>

Подопотный кролик : MagicTweak version 2.70
Язык проги : Microsoft Visual C++ 6.0
Цель : нахождение регистрационного кода
Инструменты :
WinDasm32 v8.xx-9.xx,
PEid v0.8-0.9
Pe-Scan 3.12
EmEditor v3.37 (для написания этой статьи)
и всеми любимое пиво, без него было бы влом все это проделывать......

ВСТУПЛЕНИЕ

Скачал я как-то в инете прогу MagicTweak. Очередной твикер MustDie. С его помощью можно , например, сменить надоевшие системные иконки, задать иконку для папок, дисков и т.д. Также прога позволяет спрятать диски. Стоит это "чудо" 29.95 американских лавандосов, при чем только Single License, если мы например захотим зарегистрировать на 50 челов то придется заплатить аж 449.95$. По моему нехилая цена. Без бабла прога работает 15 дней, а затем переходит в ограниченный режим, т.е. не позволяет сохранять изменения в Windows. При первом запуске прога просит ввести код. Я ввел в поле ::Name:: : TITBIT, a в поле :: ...Code:: : 12345678. Прога поздравила меня с регистрацией и попросила перезапустить себя, неужели я угадал код?! Перезапустив прогу я опять нарвался на регистрационное окно. Аха, видимо прога при запуске проверяет код. Наша цель найти правильный рег. код и зарегистрировать прогу. Поехали........

ИСCЛЕДОВАНИЕ

Как всегда проверим PEID'ом пакован ли наш кролик. PEID показал что это : PECompact 1.68 - 1.84 -> Jeremy Collake. Этот протектор может распоковать прога PE-Scan. Распокoвав прогу помещаем ее в WinDasm. Затем в String Data... ищем какую-нибудь интересную строчку. Меня заинтерисовала строчка ::RegCode:: Привожу код:

* Possible StringData Ref from Code obj ->"mgwin.ini"   <<Файл, в котором хранится инфа о регистрации>> 

:0044ACF7              6838114D00          push 004D1138
:0044ACFC              8D8C2490000000      lea ecx, dword ptr [esp-00000090]
:0044AD03              6A28                push 00000028
:0044AD05              51                  push ecx
:0044AD06              68B8CD4D00          push 004DCDB8

* Possible StringData Ref from Code obj ->"RegCode"

:0044AD0B               68C4604D00         push 004D60C4

* Possible StringData Ref from Code obj ->"REG"

:0044AD10               6828114D00         push 004D1128
:0044AD15               8BD8               mov ebx, eax
:0044AD17               FFD7               call edi
:0044AD19               8D94242C010000     lea edx, dword ptr [esp+0000012C]
:0044AD20               8D4C242C           lea ecx, dword ptr [esp+2C]
:0044AD24               52                 push edx
:0044AD25               E8C0590400         call 004906EA
:0044AD2A               8D84248C000000     lea eax, dword ptr [esp+0000008C]
:0044AD31               8D4C2430           lea ecx, dword ptr [esp+30]
:0044AD35               50                 push eax
:0044AD36               E8AF590400         call 004906EA
:0044AD3B               8B6C2424           mov ebp, dword ptr [esp+24]
:0044AD3F               8D8C248C000000     lea ecx, dword ptr [esp+0000008C]
:0044AD46               8D94242C010000     lea edx, dword ptr [esp+0000012C]
:0044AD4D               51                 push ecx
:0044AD4E               52                 push edx
:0044AD4F               8BCD               mov ecx, ebp
:0044AD51               E8EA090000         call 0044B740
:0044AD56               85C0               test eax, eax
:0044AD58               740F               je 0044AD69
:0044AD5A               83FB04             cmp ebx, 00000004

:0044AD5D               C70534DB4D00010000 mov dword ptr [004DDB34], 00000001
:0044AD67               730A               jnb 0044AD73

* Reference by a (U)nconditional or (C)onditional Jump at Address:
|:0044AD58(C)
|
:0044AD69                C70534DB4D0000000000     mov dword ptr [004DDB34], 00000000

* Reference by a (U)nconditional or (C)onditional Jump at Address:
|:0044AD67(C)
|
:0044AD73                8D84248C000000   lea eax, dword ptr [esp+0000008C]
:0044AD7A                8BCD             mov ecx, ebp
:0044AD7C                50               push eax
:0044AD7D                E81E0D0000       call 0044BAA0  <<Процедура проверки>> 
:0044AD82                85C0             test eax, eax   <<сравнение eax>> 
:0044AD84                0F853D020000     jne 0044AFC7   << если еах равен 1 прыгаем, если 0 топаем дальше >>  

ВЗЛОМ

Заменив переход по адресу :0044AD84 мы зарегим прогу, на давайте войдем в проверку и посмотрим что там, а там :

* Reference by a CALL at Address:
|:0044AD7D
|
:0044BAA0                   B8FC2A0000            mov eax, 00002AFC
:0044BAA5                   E836DE0200            call 004798E0
______________________урезано___________________________

:0044BAFC                   AB                    stosd
:0044BAFD                   83C9FF                or ecx, FFFFFFFF

* Possible StringData Ref from Code obj ->"8GDDEEGO,90FGEHG0,0H0F1M0E,D0GMG7HE,E7EEDEGE,B"     << регистрационные номера>>  
                                                      ->"79EME90,EEG8FW7E,J7G0B975,1GMF0GEJ,EEM880DE,8C"
и так далее

Как вы думаете что это за комбинации, неужели рег. коды?! Проверим.... Запустив Magic Tweak вводим TITBIT и какой-нибудь рег. код из приведенного выше, и опять прога хвалит нас за регистрацию и просит перезапустить себя. Перезапускаем и видим приятную надпись ::: This copy is licensed to: TITBIT ::: Прога повержена!!!
Кстати прога проверяет регистр букв, т.е. рег. код нужно вводить только прописными буквами иначе не зарегистрируете. И еще если захотите убрать регистрацию удалите на хрен файл mgwin.ini, он находиться в папке Windows (например c:\Windows)

P.S. Бля, програмеры хотят столько денег с такой защитой!!! Может и найдется какой-нибудь Лох и заплатить им, в чем я сильно сомневаюсь. Хотя нет, я ошибаюсь, найдется в Америке Лох, и не один, который заплатит.........

Вопросы, пожелания шлите на: titbit@hakeris.net

Написано: 11.12.03


Материалы находятся на сайте http://cracklab.narod.ru/doc/






Hosted by uCoz