Исследование Teleport Pro 1.29 (Build 1422)

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


Используемые инструменты: Numega Soft Ice 4.00 , WinDASM 8.93

     Устанавливаем bpx GetWindowTextA, далее вводим
Your Name: Dexim и Registration Code: 12121212 - что нибудь.
Нажимаем Ok. И вываливаемся в S-Ice .

* Reference To: USER32.GetWindowTextA, Ord:015Eh
                                  |
:00449C57 FF15F0534600            Call dword ptr [004653F0]
:00449C5D 8B4D10                  mov ecx, dword ptr [ebp+10]
:00449C60 6AFF                    push FFFFFFFF
..........

Тут видим, как в строке 00449C5D в ecx записывается адрес 00924660,
где и содержится нами введенный регистрационный код.
Трассируем до кода :

:00425F33 53                      push ebx
:00425F34 50                      push eax
:00425F35 E85B690000              call 0042C895
..........

В подпрограмму 0042C895 передаются указатели на введенное имя
и в ней, по всей видимости, происходит генерация правильного рег. кода.
Трассируем далее. В процедуре 00426900 происходят какие-то действия с
нашим кодом и со сгенеренным . И в строке 00425F6A происходит сравнение.
После чего  jnz 00426900 перекидывает нас на сообщение о неправильности кода.
Теперь остается заменить jnz 00426900 (753A) на два nop (90) .

:00425F65 E896090000              call 00426900
:00425F6A 3945E8                  cmp dword ptr [ebp-18], eax
:00425F6D 59                      pop ecx
:00425F6E 753A                    jnz 00426900
:00425F70 A114D44700              mov eax, dword ptr [0047D414]
:00425F75 8945F0                  mov dword ptr [ebp-10], eax

После чего пробуем опять зарегистрироваться, но при запуске оно
выдает :"This program has been altered, possibly by a virus; program execution will stop now."
Теперь нам достаточно взять WinDASM и поискать это сообщение.
Мы найдем его в строке 0040B48D если взглянуть чуть выше то
видно, что в строке 0040B487 происходит сравнение, судя по всему
контрольной суммы файла pro.exe и если все нормально то нас должно
перекинуть командой je 0040B49E на нормальное выполнение программы,
но этого не происходит т.к. контрольная сумма естественно не совпадает.

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B479(U)
|
:0040B47D 3BFB                    cmp edi, ebx
:0040B47F 5F                      pop edi
:0040B480 741C                    je 0040B49E
:0040B482 A1ECB64700              mov eax, dword ptr [0047B6EC]
:0040B487 3B30                    cmp esi, dword ptr [eax]
:0040B489 7413                    je 0040B49E
:0040B48B 53                      push ebx
:0040B48C 53                      push ebx

* Possible StringData Ref from Data Obj ->"This program has been altered, "
                                        ->"possibly by a virus; program execution "
                                        ->"will stop now."
                                  |
:0040B48D 68FCB64700              push 0047B6FC
:0040B492 E83AEC0300              call 0044A0D1

Нам ничего не остается, как заменить je 0040B49E (7413) на jmp 0040B49E (EB13).
Теперь Teleport спокойно запускается и регистрируется на любой код,
но почему-то не сохраняет эту информацию и при каждом запуске приходится снова
его регистрить . Это описание не претендует на полноценный crack, для того чтобы
зарегистрировать нормально Teleport - надо сделать генератор - проанализировав подпрограмму
генерации кодов (это либо 00426900, либо 0042C895 - точно сказать не берусь - я особо туда
не вникал), но это тема уже отдельной статьи.



Author : Dexim
E-mail: dexim#cydem.zp.ua


Материалы размещены на http://cracklab.narod.ru/doc/ с разрешения http://cydem.zp.ua/






Hosted by uCoz