Teleport Pro Version 1.29
Оформил: DeeCo
Автор: http://www.cracklab.narod.ru
Я вот решил поисследовать что-нибудь известное, и наткнулся на этот замечательный
продукт, который способен закачивать целиком целые сервера, причем делает он
это с огромным количеством настроек. Вобщем неплохая вещь. И как мне и нужно
было, эта прога имеет ограничение в использовании (её можно запускать только
40 раз), регистрация, как мне показалось, не оказалась сложноватой, и я решил
покракать её.
Я запустил программу и очень удивился, когда не увидел ни одного наг-окна
или ещё чего-нибудь. Я изменил пару байтиков в программе, чтобы проверить
программу на присутствие CRC проверки и оказалось, что она есть!!! Выскочил
messageboxA с надписью "This programm was alterd!" или около того, вобщем я
открыл WDasm и дизассемблировал pro.exe, затем открыл String Reference и
начал искать подозрительные строки и вот я натолкнулся на строку
"This program's name has been changed" , я поменял имя программы с "pro.exe"
на "pro-test.exe" и запустил программу, при этом выскочило сообщение с той
самой строкой о неправильном имени! Я нажал на эту строку в WDasm'e и увидел
вот что:
* Possible String Data Reffrom Data Obj - >" This program's name has been changed;"
- >" please rename the program to its"
- >" original name."
|
:0040B87F 6878C74700 push 0047C778
:0040B884 E8A1FF0300 call 0044B82A
:0040B889 6A02 push 00000002
:0040B88B E8BD240200 call 0042DD4D
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040B860(C), :0040B87B(C)
|
* Possible String Data Reffrom Data Obj - >" q#P "
|
:0040B890 A110C74700 mov eax, dword ptr [0047C710]
:0040B895 8B4DE4 mov ecx, dword ptr [ebp-1C]
:0040B898 57 push edi
:0040B899 8B7804 mov edi, dword ptr [eax+04]
:0040B89C 8B45E8 mov eax, dword ptr [ebp-18]
:0040B89F 2BC1 sub eax, ecx
:0040B8A1 3BF8 cmp edi, eax
:0040B8A3 7322 jnb 0040B8C7
:0040B8A5 2BC7 sub eax, edi
:0040B8A7 83E808 sub eax, 00000008
Я проскролил окно листинга до места входа в эту функцию:
* Referenced by a CALL at Address:
|:00415298 ;отсюда вызывается процедура
|
:0040B82F B818074600 mov eax, 00460718
:0040B834 E8BF0B0200 call 0042C3F8
:0040B839 83EC10 sub esp, 00000010
:0040B83C 53 push ebx
:0040B83D 33DB xor ebx, ebx
:0040B83F 56 push esi
:0040B840 53 push ebx
:0040B841 6A20 push 00000020
:0040B843 53 push ebx
:0040B844 8D4DE4 lea ecx, dword ptr [ebp-1C]
:0040B847 E8A665FFFF call 00401DF2
:0040B84C FF35185A4800 push dword ptr [00485A18]
:0040B852 8D4DE4 lea ecx, dword ptr [ebp-1C]
:0040B855 895DFC mov dword ptr [ebp-04], ebx
:0040B858 E8AD000000 call 0040B90A
:0040B85D 395D08 cmp dword ptr [ebp+08], ebx
:0040B860 742E je 0040B890
:0040B862 FF7508 push [ebp+08]
:0040B865 FF35185A4800 push dword ptr [00485A18]
:0040B86B E89CF6FFFF call 0040AF0C
:0040B870 59 pop ecx
:0040B871 50 push eax
Я перешел по адресу 00415298 (Shift-F12), по которому и происходил вызов процедуры
проверки правильного имени файла, и увидел вот что:
:0041528B 83EC40 sub esp, 00000040
:0041528E 53 push ebx
:0041528F 56 push esi
:00415290 57 push edi
:00415291 8BF1 mov esi, ecx
* Possible String Data Reffrom Data Obj - >" pro.exe"
|
:00415293 687CDB4700 push 0047DB7C
:00415298 E89265FFFF call 0040B82F ;(*)вызов процедуры проверки
:0041529D 8BCE mov ecx, esi
* Possible String Data Reffrom Data Obj - >" Tennyson Maxwell"
|
:0041529F C70424B8D84700 mov dword ptr [esp], 0047D8B8
:004152A6 E87E5B0400 call 0045AE29
* Possible String Data Reffrom Data Obj - >" Teleport Pro"
|
:004152AB 684CD84700 push 0047D84C
:004152B0 8D8E6D050000 lea ecx, dword ptr [esi+0000056D]
:004152B6 E83FCDFEFF call 00401FFA
:004152BB FF35185A4800 push dword ptr [00485A18]
:004152C1 8BCE mov ecx, esi
Как видите, по адресу :00415298 происходит вызов процедуры проверки. Чтобы
проверки не было - достаточно забить nop'ами вызов этой процеддуры. Для этого
открываем hex-editor, идём по указанному адресу и меняем "E89265FFFF" на
"9090909090" - теперь можно менять имя файла на любое другое :)
Но как оказалось в этой же функции происходит ПРОВЕРКА НА ИЗМЕНЕНИЯ В ИСПОЛНЯЕМОМ
файле (то есть CRC проверка) - Что ОООЧЕНЬ ГЛУПО! Таким образом убрав эту
проверку мы тем самым убрали и проверку CRC - теперь можно править файл pro.exe
как душе угодно!
Теперь я запустил 40 раз программу, чтобы исчерпать все пробные запуски и после
попытки закачать что-дибо увидел сообщение о том, что все 40 раз вышли! Я
опять открыл String Reference и нашел нужную строку два раза вот тут:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041DA22(C)
|
:0041DA61 A1F8204800 mov eax, dword ptr [004820F8]
:0041DA66 3898DD040000 cmp byte ptr [eax+000004DD], bl
:0041DA6C 743D je 0041DAAB ; тут проверяют - истёк ли триал на 40 запусков
; или нет и если не истек - прыгаем!
:0041DA6E A184E44700 mov eax, dword ptr [0047E484]
:0041DA73 8945EC mov dword ptr [ebp-14], eax
* Possible Reference to String Resource ID= 070 58 : "Sorry! The free evaluation period fo..."
|
:0041DA76 68921B0000 push 00001B92
:0041DA7B 8D4DEC lea ecx, dword ptr [ebp-14]
:0041DA7E C745FC04000000 mov [ebp-04], 00000004
:0041DA85 E85B730200 call 00444DE5
:0041DA8A 53 push ebx
:0041DA8B 57 push edi
:0041DA8C 57 push edi
:0041DA8D C745FC05000000 mov [ebp-04], 00000005
:0041DA94 FF75EC push [ebp-14]
:0041DA97 E8BD8EFFFF call 00416959
:0041DA9C 83C410 add esp, 00000010
:0041DA9F 834DFCFF or dword ptr [ebp-04], FFFFFFFF
:0041DAA3 8D4DEC lea ecx, dword ptr [ebp-14]
:0041DAA6 E9BF000000 jmp 0041DB6A
Как видим, по адресу 0041DA6C, нужно заменить je 0041DAAB на jmp 0041DAAB
и теперь мерзких сообщений мы не увидим и всё будет работать как надо!
Но строка о незарегестрированности находится два раза в String Reference
первый раз мы уже разобрали, а второй вот:
:00412D52 B814124600 mov eax, 00461214
:00412D57 E89C960100 call 0042C3F8
:00412D5C 83EC6C sub esp, 0000006C
:00412D5F 53 push ebx
:00412D60 56 push esi
:00412D61 57 push edi
:00412D62 8BF9 mov edi, ecx
:00412D64 8D4D88 lea ecx, dword ptr [ebp-78]
:00412D67 E876300000 call 00415DE2
:00412D6C 8B7508 mov esi, dword ptr [ebp+08]
:00412D6F 33DB xor ebx, ebx
:00412D71 395D0C cmp dword ptr [ebp+0C], ebx
:00412D74 895DFC mov dword ptr [ebp-04], ebx
:00412D77 7434 je 00412DAD ; здесь проверка нужно ли окно "О программе"
; при запуске, если вышли 40 тестовых запуска.
; Если не нужно - прыгаем!
:00412D79 A184E44700 mov eax, dword ptr [0047E484]
:00412D7E 89450C mov dword ptr [ebp+0C], eax
* Possible Reference to String Resource ID=070 58 : "Sorry! The free evaluation period for..."
|
:00412D81 68921B0000 push 00001B92
:00412D86 8D4D0C lea ecx, dword ptr [ebp+0C]
:00412D89 C645FC01 mov [ebp-04], 01
:00412D8D E853200300 call 00444DE5
:00412D92 8D450C lea eax, dword ptr [ebp+0C]
:00412D95 8D4DF0 lea ecx, dword ptr [ebp-10]
Как вы уже догадались, по адресу 00412D77, нужно чтобы мы всегда прыгали, поэтому
меняем je 00412DAD на jmp 00412DAD и при запуске никаких напоминаний не будет!
Ну а для самых ленивых готовый крак:
--------вырезать тут------
TeleportPro v1.29 Crack by vallkor//PTDS (vallkor@chat.ru)
removes all limits :)
pro.exe
00015298: E8 90
00015299: 92 90
0001529A: 65 90
0001529B: FF 90
0001529C: FF 90
0001DA6C: 74 EB
00012D77: 74 EB
--------вырезать тут------
PS: статья написана только в образовательных целях, чтобы показать компаниям
на возможные дыры в защите своих продуктов! Если вам понравилась описанная
программа - вы обязаны купить её!!!
исследовал и наваял туториал:
vallkor //PTDS (vallkor@chat.ru)
{Комманда PTDS нуждается в новых членах! Если вы считаете, что способны
на многое и хотите поделиться своими знаниями и взамен получить новые
пишите мне}
|