Уроците на 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