Teleport Pro Version 1.29Delphi , Программа и Интерфейс , Исследование программTeleport Pro Version 1.29
Оформил: DeeCo Я вот решил поисследовать что-нибудь известное, и наткнулся на этот замечательный продукт, который способен закачивать целиком целые сервера, причем делает он это с огромным количеством настроек. Вобщем неплохая вещь. И как мне и нужно было, эта прога имеет ограничение в использовании (её можно запускать только 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: статья написана только в образовательных целях, чтобы показать компаниям на возможные дыры в защите своих продуктов! Если вам понравилась описанная программа - вы обязаны купить её!!!
исследовал и наваял туториал:
Статья Teleport Pro Version 1.29 раздела Программа и Интерфейс Исследование программ может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |