Автор: TITBIT <saniok@xxx.lt>
Подопотный кролик : Alcohol 120% v1.4.7(Build 1005)Проверим PEID'ом пакована ли наша прога. Он показал что это UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo. Этот UPX распаковывается самим же UPX'ом. Запустите его с ключом upx -d alcohol.exe. Ну вот теперь можно и поиздеваться над прогой :)) После окончания триал периода нас уведомляют окном "The trial period has expired!" Поищем эту строчку в WinDasm'е (надеюсь вы уже диссамблировали прогу WinDasm'ом, если нет, то вперед...)Вот код:
* Possible Reference to String Resource ID=00001: "Some aplication(s) has locked the device" :0042340B B80100000 mov eax, 00000001 :00423419 E8E78E1Е00 call 0060C2FC <<процедура проверки>> :00423415 DD9D3CFFFFFF fstp qword ptr [ebp+FFFFFF68], 0008 :0042341B 66C78568FFFFFF0800 mov word ptr [ebp+FFFFFF44] :00423424 DD8544FFFFFF fld qword ptr [ebp+FFFFFF44] :0042342A DC9D3CFFFFFF fcomp qword ptr [ebp+FFFFFF3C] :00423430 33DB xor edx, ebx :00423432 DFE0 fstsw ax :00423434 9E sahf :00423435 0F97C2 seta dl :00423438 83E201 and edx, 00000001 :0042343B 84D2 test dl, dl :0042343D 0F8497010000 je 004235DA <<проверка на вшивость если dl =0, падаем на "забавное" окно, если =1, то прыгаем на NAG скрин с задержкой 5 сек...>> :00423443 6A40 push 00000040 :00423445 33C9 xor ecx, ecx _ _ _ _ _ _ _ _ _ _ урезано_ _ _ _ _ _ _ _ _ _ _ _ _ * Reference by a (U)nconditional or (C)onditional Jump at Address: |:0042346D(C) | :00423479 51 push ecx :0042347A 33C0 xor eax, eax :0042347C 8945A8 mov dword ptr [ebp-58], eax :0042347F 8D55A8 lea edx, dword ptr [ebp-58] :00423482 FF8574FFFFFF inc dword ptr [ebp+FFFFFF74] * Possible Reference to String Resource ID=21633: "The Trial Period has expired! Please purchase a registration" << "забавное"окно>> :00423488 B881540000 mov eax, 00005481 :0042348D E8C23C0200 call 00447154 :00423492 8B55A8 mov edx, dword ptr [ebp-58] :00423495 85D2 test edx, edx :00423497 7405 je 0042349E _ _ _ _ _ _ _ _ _ _ урезано_ _ _ _ _ _ _ _ _ _ _ _ _ * Reference by a (U)nconditional or (C)onditional Jump at Address: |:0042343D(C) | :004235DA A1D43E6C00 mov eax, dword ptr [006C3ED4] << ......прыгаем сюда>> :004235DF 8B08 mov ecx, dword ptr [eax] :004235E1 B201 mov dl, 01 * Possible StringData Ref from Data obj ->""Б\" :004235E3 A1DC426800 mov eax, dword ptr [006842DC] :004235E8 E813DFFFFF call 00421500 :004235ED 8BF8 mov edi, eax :004235EF 66C78568FFFFFF0800 mov word ptr [ebp+FFFFFF68] , 0008 :004235F8 33D2 xor edx, edx :004235FA 8B8720030000 mov eax, dword ptr [edi+00000320] :00423600 8B08 mov ecx, dword ptr [eax] :00423602 FF5164 call [ecx+64] :00423605 B201 mov dl, 01 :00423607 8B8730030000 mov eax, dword ptr [edi+00000330] :0042360D 8B08 mov ecx, dword ptr [eax] :0042360F FF515C call [ecx+5C] :00423612 66C78568FFFFFF9800 mov word ptr [ebp+FFFFFF68], 0098 :0042361B 33C0 xor eax, eax :0042361D 8D5598 lea edx, dword ptr [ebp-68] :00423620 894598 mov dword ptr [ebp-68], eax * Possible Reference to String Resource ID=21622: "Trial Version. Please wait.." <<Знакомая строчка из NAG скрина, с задержкой в 5 секунд>> :00423623 B876540000 mov eax, 0005476 :00423628 FF8574FFFFFF inc dword ptr [ebp+FFFFFF74] _ _ _ _ _ _ _ _ _ _ урезано_ _ _ _ _ _ _ _ _ _ _ _ _ :00423677 E880D61900 call 005C0CFC :0042367C 84DB test bl, bl :0042367E 0F848F000000 je 00423713 <<Если прыгаем то нарываемся на NAG скрин с 5сек, а если нет то топаем дальше и попадаем просто на NAG скрин>> :00423684 66C78568FFFFFFA400 mov word ptr [ebp+FFFFFF68], 00A4 :0042368D BA60376800 mov edx, dword ptr [eax] :00423692 8D4594 lea eax, dword ptr [ebp-6C] :00423695 E83AFC2100 call 006432D4 :0042369A FF8574FFFFFF inc dword ptr [ebp+FFFFFF74] :004236A0 8B10 mov edx, dword ptr [eax] :004236A2 8B872C030000 mov eax ptr [edi+0000032C] :004236A8 E85FD71900 call 005C0E0C :004236AD FF8D74FFFFF dec dword ptr [ebp+FFFFFF74] :004236B3 8D4594 lea eax, dword ptr [ebp-6C] * Possible Reference to String Resource ID=21621: "Trial Version" <<А здесь начинаеться процедура того же NAG скрина только уже без задержки 5с>> :004236D1 B875540000 mov eax, 00005475
xor eax,eax - 31C0
inc eax 40
Ну вот теперь dl будет всегда равен 1, что нам и нужно. Далее заменим по адресу 0042367E переход(je на jne) Окно о завершении триал периода исчезло, так же как и задержка в 5 секунд. Юзать ее можно не только 30 дней. Осталось только все тот же NAG скрин, в принципе можно всегда нажимать на ==OK== и пользоваться программой, но почему бы нам не избавиться от этого окна?!
Итак приступим....
Сначала нужно найти место откуда вызывается процедура NAG окна. Для этого в SOFTIC'е ставим брэкпоинт по адресу 0042367Е, для тех кто не знает как это сделать в Айсе читайте мою предыдущею статью (BAD_GUY поставь здесь ссылку на эту статью буду благодарен). Когда мы прервавшись окажемся в Айсе трассируем прогу с F10. После n'ного нажатия (в моем случаи 36) мы вываливаемся из Айса и попадаем на NAG скрин, после нажатия на OK снова оказываемся в Айсе
:00423760 FF92E8000000 call dword ptr [edx+000000E8] <<Процедура NAG скрина>> :00423766 84DB test bl, bl <<после нажатия на OK попадаем сюда>>Теперь сделаем элементарную вещь - занопим процедуру Окна, т.е. заменим в любимом HEX редакторе (Я использовал Hexplorer) байты FF92E8000000 на 909090909090 Заменив байты запускаем Alcohol и "О, Великая Жопа" NAg скрин исчез. Все прога повержена!!!
P.S. Можно конечно было найти место проверки регистрации, но зачем это делать если проще, да и быстрей, пропатчить... Функциональность проги этим не снижается. Но это только мое личное мнения, и я его не кому не навязываю. А насчет разработчиков скажу просто - лохи, если хотят денег, то пусть стараются!!!.
Если кто че не понял пишите на: saniok@xxx.lt
Написано: 21.11.03
Материалы находятся на сайте http://cracklab.narod.ru/doc/