Уроците на Jonie


Тема
MicroAngelo98 v4.72.3110a ( crack )


Нужни програми
SoftIce
W32Dasm
HexEditor(HexWorkShop)


Увод
MicroAngelo98 e пакет от 5 програми с чиято помощ може да се създават и редактират системни икони и курсори. Също така може да се променят системните икони и курсори на Windows, а също така има възможност да се търсят и извличат икони от  Exe,Dll и ресурсни файлове.

Програмата е "shareware" версия с 30-дневен пробен период след който трябва да се регистрира за да може да се използва легално.
В този урок е обяснено как се премахва 30-дневното ограничение
и надписа "Evaluation" от заглавието и  от диалога "About" на една от програмите -Microangelo-Studio. Същия принцип се използва и за останалите 4 програми като различни са само адресите в програмните файлове.


Начин на действие
Настройте системния часовник с 30 дена напред и стартираите Microangelo-Studio. При стартирането на програмата се появява диалогов прозорец с информация за програмният лиценз. Натиснете бутона "I Agree", програмата деиства , но в заглавието й има надпис "(Licensing Overdue!-Grace Day x of xx)".
Затворете програмата, влезте в Soft-Ice (Ctrl+D) , напишете BPX Get SystemTime (Enter) и излезте от нея.Стартирайте Microangelo-Studio, Soft-Ice веднага прекъсва изпълнението на програмата поради проверка на системното време от страна на Microangelo-Studio. Натиснете F11 и ще видите следния участък от кода на програмата:


* Reference To: KERNEL32.GetSystemTime, Ord:015Dh
                                  |
:0041E8EC FF15BC414200         Call dword ptr [004241BC]
:0041E8F2 668B45EA             mov ax, word ptr [ebp-16]
:0041E8F6 663B05328A4200       cmp ax, word ptr [00428A32]
:0041E8FD 753B                 jne 0041E93A
:0041E8FF 668B45E8             mov ax, word ptr [ebp-18]
:0041E903 663B05308A4200       cmp ax, word ptr [00428A30]
:0041E90A 752E                 jne 0041E93A

:0041E90C 668B45E6             mov ax, word ptr [ebp-1A]
:0041E910 663B052E8A4200       cmp ax, word ptr [00428A2E]
:0041E917 7521                 jne 0041E93A
:0041E919 668B45E2             mov ax, word ptr [ebp-1E]

Изтриите прекъсването ( BC 0 ) , излеэте от Soft-Ice и затворете и
Microangelo-Studio. С помощта на W32Dasm отворете файла muedit.EXE и намерете горният участък от кода.
Ако скролирате малко нагоре ще видите следния код :

* Referenced by a CALL at Address:

|:0040652B  
|
:0041E8D5 55             push ebp
:0041E8D6 8BEC           mov ebp, esp
:0041E8D8 81ECCC000000   ub esp, 000000CC
:0041E8DE 8D45F0         lea eax, dword ptr [ebp-10]
:0041E8E1 50             push eax

* Reference To: KERNEL32.GetLocalTime, Ord:011Bh
                                  |
:0041E8E2 FF15B8414200   Call dword ptr [004241B8]
:0041E8E8 8D45E0         lea eax, dword ptr [ebp-20]
:0041E8EB 50             push eax


Това значи ,че процедурата за проверка на времето се извиква от
адрес : 0040652B

* Referenced by a CALL at Address:
|:0040D1C4  
|
:00406520 83EC08              sub esp, 00000008
:00406523 53                  push ebx
:00406524 55                  push ebp
:00406525 56                  push esi
:00406526 68B0BE4200          push 0042BEB0
:0040652B E8A5830100          call 0041E8D5
:00406530 68B0BE4200          push 0042BEB0
:00406535 E83B820100          call 0041E775

:0040653A 83C408              add esp, 00000008
:0040653D 33DB                xor ebx, ebx
:0040653F A398BE4200          mov dword ptr [0042BE98], eax
:00406544 68C09F4200          push 00429FC0

От горният код се вижда, че това също е процедура която се извиква от адрес : 0040D1C4

* Referenced by a(U)nconditional or(C)onditional Jump at Address:
|:0040D161(U)
|
:0040D1B9 FFD6               call esi
:0040D1BB A1C0AC4200         mov eax, dword ptr [0042ACC0]

:0040D1C0 85C0               test eax, eax
:0040D1C2 7516               jne 0040D1DA
:0040D1C4 E85793FFFF         call 00406520
:0040D1C9 85C0               test eax, eax
:0040D1CB 751E               jne 0040D1EB
:0040D1CD 5F                 pop edi
:0040D1CE 5E                 pop esi
:0040D1CF 5D                 pop ebp
:0040D1D0 5B                 pop ebx
:0040D1D1 81C470030000       add esp, 00000370
:0040D1D7 C20800             ret 0008


Над този адрес се вижда, че програмата проверява регистъра EAX и в зависимост от отговора ( 1 или 0 ) се извиква процедурата от адрес 00406520 или отива на адрес 0040D1DA.
 Затваряме W32Dasm и в Soft-Ice слагаме прекъсване на адрес 0040D1C2 (BPX 0040D1C2) ( използвайте Symbol Loader ).
Стартираме Microangelo-Studio и Soft-Ice прекъсва изпълнението и на адрес 0040D1C2.

:0040D1C2 7516          jne 0040D1DA
:0040D1C4 E85793FFFF    call 00406520

:0040D1C9 85C0          test eax, eax
:0040D1CB 751E          jne 0040D1EB
:0040D1CD 5F            pop edi
:0040D1CE 5E            pop esi
:0040D1CF 5D            pop ebp
:0040D1D0 5B            pop ebx
:0040D1D1 81C470030000  add esp, 00000370
:0040D1D7 C20800        ret 0008


Да накараме програмата да отиде на адрес 0040D1DA
За целта използвайте следната команда: R EIP=0040D1DA (Enter)
След като се изпълни командата затворете Soft-Ice ( F5 ).

Microangelo-Studio се отваря нормално без никакви диалогови прозорци и в заглавието няма допълнителни надписи.
Затворете програмата и с помощта на някакъв HexEditor (
HexWorkShop ) отворете файла muedit.EXE и в offset D1C2h
променете кода 7516 на EB16, съхранете новите промени във файла и го затворете. Сега вече Microangelo-Studio ще работи нормално без ограничение във времето.
Въпреки това ако от менюто Help изберете About се отваря диалогов прозорец който показва, че програмата все още е "30-Day Evaluation" и ни подканва да я регистрираме.

Да видиме дали ще може да премахнеме този досаден надпис.
Тъй като това е картина ще използваме следният метод.
Стартирайте Microangelo-Studio , в Soft-Ice напишете BPX LoadBitmapA (Enter) и след това F5. Изберете Help -> About,
Soft-Ice прекъсва програмата при зареждане на картината.
Натиснете F11 и ще видите следния код :

:10001466 683C810010    push 1000813C                                 
:1000146B 6A01          push 00000001
:1000146D 56            push esi

:1000146E A390900010    mov dword ptr [10009090], eax
:10001473 FFD3          call ebx
:10001475 50            push eax


Адресите започващи с 1000хххх значат ,че това не е ЕХЕ файл, а може би DLL файл. Ако използвате FileMonitor ще видите ,че това е файла muapp.DLL намиращ се в директорията Microangelo 98. Отваряме този файл в W32Dasm и намираме горния участък от кода.

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:1000142B(C)
|
:10001457 8B0DAC910010   mov ecx, dword ptr [100091AC]
:1000145D 6A22           push 00000022
:1000145F 51             push ecx

* Reference To: USER32.LoadBitmapA, Ord:0198h
                                  |
:10001460 FF1530610010   Call dword ptr [10006130]

* Possible StringData Ref from Data Obj ->"Next"
                                  |
:10001466 683C810010     push 1000813C ; <-Soft-Ice прекъсва тук


* Possible Reference to String Resource ID=00001: "I &Agree"
                                  |
:1000146B 6A01          push 00000001
:1000146D 56            push esi
:1000146E A390900010    mov dword ptr [10009090], eax
:10001473 FFD3          call ebx
:10001475 50            push eax


От горният код се вижда, че тази процедура се извиква от адрес:
1000142B

:1000141C 6A01        push 00000001
:1000141E 56          push esi

:1000141F FFD3        call ebx
:10001421 50          push eax
:10001422 FFD7        call edi
:10001424 A18C900010  mov eax, dword ptr [1000908C]
:10001429 85C0        test eax, eax
:1000142B 742A        je 10001457
:1000142D A1AC910010  mov eax, dword ptr [100091AC]
:10001432 6A23        push 00000023
:10001434 50          push eax

В Soft-Ice слагаме прекъсване на адрес 1000142B (BPX 1000142B) ( използвайте Symbol Loader ). Изберете Help -> About, Soft-Ice прекъсва програмата на адрес 1000142B. За да продължи програмата без да отиде на адрес 10001457 използвайте следната команда: R EIP=1000142D (Enter) , изтриите зададеното прекъсване ( BC 0 ) r след това излезте от Soft-Ice ( F5 ).

Диалоговият прозорец "About" се показва но без "30-Day Evaluation", но след като натиснете ОК се показва и диал. прозорец с информация за регистриране на програмата.
Изберете отново  Help -> About, но преди да натиснете ОК влезте в Soft-Ice ( Ctrl+D ) , напишете BPX LoadBitmapA (Enter) и след това F5. След като натиснете ОК Soft-Ice прекъсва програмата
на адрес:10001672

:10001672 5B            pop ebx
:10001673 A33C8F0010    mov dword ptr [10008F3C], eax

:10001678 5F            pop edi
:10001679 33C0          xor eax, eax
:1000167B 5E            pop esi
:1000167C 81C424010000  add esp, 00000124
:10001682 C21000        ret 0010
        

Ако проследим последователно всички извиквания на процедури до тази част от кода, достигаме до следния код:

* Possible Reference to Dialog: DialogID_0384
                                  |
:10001799 6884030000     push 00000384
:1000179E 51             push ecx

:1000179F FFD7           call edi
:100017A1 A18C900010     mov eax, dword ptr [1000908C]
:100017A6 85C0           test eax, eax
:100017A8 7516           jne 100017C0
:100017AA 8B15AC910010   mov edx, dword ptr [100091AC]
:100017B0 6A00           push 00000000
:100017B2 6810150010     push 10001510
:100017B7 56             push esi


В Soft-Ice изтриите  всички зададени прекъсвания ( BC *)
сложете  прекъсване на адрес 100017A8 (BPX 100017A8) ( Enter ) и на адрес 1000142B (BPX 1000142B) ( Enter ) и след това ( F5 ).Изберете отново  Help -> About, Soft-Ice прекъсва програмата на адрес 1000142B - въведете R EIP=1000142D (Enter)
и след това ( F5 ). Диалоговият прозорец "About" се показва без "30-Day Evaluation".  Натиснете ОК, Soft-Ice прекъсва програмата на адрес 100017A8 - въведете

R EIP=100017C0 (Enter)
и след това ( F5 ) - Вторият диал. прозорец не се показва.

Затворете програмата и с помощта на някакъв HexEditor (HexWorkShop ) отворете файла muapp.DLL. В offset 142Bh променете кода 742A на 9090, в offset 17A8h променете кода 7516 на EB16, съхранете новите промени във файла и го затворете.

С това този урок завършва. За другите 4 програми начина на действие е абсочютно същия като само адресите са различни.
( Файла muapp.DLL се използва по един и същ начин от всичките програми и не са нужни повече промени в него )


Надявам се да ви бъда полезен с представения урок и ако имате  някакви въпроси относно него или за нещо друго можете да ми пишете  на адрес :
 horrorscop@excite.com

 

 

Hosted by uCoz