|
Pix Maker v1.0.3.0 |
|
amois |
|
Program Tipi: grafik, animasyon |
|
Araηlar:
SoftICE, W32Dasm |
|
|
|
|
SoftICE in super ozelligi Back Trace Buffer hakkinda bilgi vermeye calisacagim.
|
|
360 derecelik fotograflar olusturmanizi saglayan guzel bir program. Calistirinca secenekler sunan bir pencere geliyor. Netten bulacaginiz KeyGen lerin tam olarak calismadigini goreceksiniz. Devam, Satin Al, Kodu Gir selinde bolumleri var. Amacimiz bu pencereyi cagiran CALL u bulmak. Daha dogrusu, Registered kontrol yapilan karsilastirmayi bulmak. Program Visual Basic ile yazilmis. Smartcheck ile hicbir sonuc alamadim. SoftIce in su ana kadar kullanmadigim, ama gercekten super bir ozelligi olan Back Trace Buffer olayini deneyecegim. Belirlediginiz bir yere breakpoint koyuyorsunuz. SoftIce a hangi aralikta takip yapmasi gerektigini bildiriyorsunuz. Bu andan itibaren, SoftICE breakpoint calisana kadar gecen komutlari buffer buyuklugune bagli olarak sakliyor. Winice.dat dosyasindaki TRA=xxx bolumunu 100 olarak degistirin.
Karsilasabilecegimiz sorun, isletilen komut sayisinin cok fazla olabilecegi. Bu problemi nasil halledebiliriz ? Hedefe mumkun oldugu kadar yaklastiktan sonra Trace Bufferi calistirmak. Pencere ciktiktan sonra
[bpx hmemcpy] --> Menuden Continue --> [bc*] --> [F12]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00501AAD(U)
|
:00501AB8 C3 ret
:00501AB9 8B4508 mov eax, dword ptr [ebp+08] <-- buradayiz
Bu noktadan itibaren geriye dogru takib edecegiz.
00501A8D <-- 00501A5B <-- 00501A42 <-- 0044BCB6 <-- 0044BCB6 jmp 005019F0 <-- 44BC60 <-- ?
Inceledigimiz bolumlerde bizi bu bolgeden kurtaracak bir karsilastirmaya rastlayamadik. En sonunda da 44BCB6 adresinde tikanip kaldik. Bu bolume nereden geldimiz belli degil. Bu tarz durumlarla muhakkak karsilasmissinizdir. Aslinda sansimizi deneyecegimiz bir yol var. Elimizdeki son adrese breakpoint koyup, daha sonra RET komutu ile geri donmeye calismak. Bu bazen ise yarar, genelde de yaramaz. Cunku elimizdeki son adrese JUMP ile gelmisizdir ve RET yemez.
Evet, sira Back Trace Buffer a geldi. Breakpoint koyacagimiz yer 501AB9 olarak belli de, Back Trace Bufferi nerede atesleyecegimiz belli degil. Programin basinda da bunu yapabiliriz. Ama bu yuzden sabaha kadar da bekleyebiliriz.Program calistiginda pixmaker.key dosyasini ariyor. Bu dosyaya gore lisansli olup olmadigina karar veriyor. Programin ne zaman bu dosyaya baktigini bulabiliriz. [bpx createfilea do d esp->4] -->
Data windowda pixmaker.key gorene kadar [F5] --> [bc*] --> pencereye gelene kadar [F12] -->
Kac kere [F12] ye bastiginizi sayin (bende 12). Ayni islemi birkez daha yapin, ama [F12] ye bir eksik basin. Iste bu noktada Back Trace Bufferi devreye sokacagiz. Cunku hedefe cok yakiniz.
004F05D0 push dword ptr [00507070] <-- 11 inci [F12]
[bprw pixmaker t] <-- t parametresi trace bufferi aktif duruma getiriyor
[bpx 501AB9]
Boylece, 4F05D0 dan 501AB9 a gelene kadar Pixmaker.exe ait olan kodlar Buffera yazilacak. Makineniz kilitleniyorsa veya Module not Found tarzi hatalar aliyorsaniz --> SoftICE yeniden kurun --> yemezse isletim sistemini yeniden kurun derim. En azindan bende oyle oldu. Yine de calismazsa fazla israr etmeyin. Bence Back Trace Buffer sorunlu.
Breakpoint calistiktan sonra, SHOW komutu ile geriye donuk inceleme yapabiliriz. Tikandigimiz yer 44BCB6 idi. [show 100] --> en son 100 komutu gosterir --> Bufferi inceledigimizde 44BCB6 dan once isletilen en son cagri 49B291 de.
:0049B291 call dword ptr [ecx+000002B0]
Ayni sekilde, 49B291 den geriye giderek karsilastirma yapilan yerleri inceleyelim.
49B239 <-- 49B1C5 <-- 49B1A5 <-- 49B170 <-- 49B13B <-- 49B106 <-- 49A94C <--
W32Dasm ile geriye (yukariya) dogru giderek kritik bir karsilastirma yeri ariyoruz. Burada Bufferi inceleyerek daha kolay bir cozum de bulunabilir. Yani, JZ veya JNZ tarzi adresleri not edip daha sonra W32Dasm ile inceleme yapmak.
En son 49B0E5 de refere edilen 49A94C ye geldigimiz zaman olayi hemen hemen cozmus oluyoruz. [0050701C] deki degere gore program calisma modunu belirliyor.
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049A93C(U)
|
:0049A943 0FBF051C705000 movsx eax, word ptr [0050701C]
:0049A94A 85C0 test eax, eax
:0049A94C 0F8493070000 je 0049B0E5 <-- Trial version
:0049A952 83F801 cmp eax, 00000001
:0049A955 0F84B1060000 je 0049B00C <-- Creative Edition
:0049A95B 83F802 cmp eax, 00000002
:0049A95E 0F8420060000 je 0049AF84 <-- Home Edition
:0049A964 83F803 cmp eax, 00000003
:0049A967 0F845A050000 je 0049AEC7 <-- Business Edition
:0049A96D 0F8E40090000 jle 0049B2B3
[0050701C] ye deger atayan yerlere bakalim.
1- 0049A6BB 66A31C705000 mov word ptr [0050701C], ax <-- gerek yok
2- 0049B2C5 66C7051C7050000400 mov word ptr [0050701C], 0004 <-- gerek yok
3- 0049E369 66C7051C7050000400 mov word ptr [0050701C], 0004 <-- gerek yok
4- 004F12F9 66A31C705000 mov word ptr [0050701C], ax <-- 1 inci
5- 004F156E 66A31C705000 mov word ptr [0050701C], ax <-- 2 inci
6- 004F1600 66A31C705000 mov word ptr [0050701C], ax <-- 3 uncu
Yukaridaki 6 adrese breakpoint koyup inceleyelim. Breakpoint ler sirasiyla 4, 5 ve 6 da calisti. Gerekli patch leri (4, 5 ve 6) yapip tekrar deneyelim. Program garip bir sekilde hata veriyor. [bpm 50701C] yapip tekrar deneyelim. Boylelikle [0050701C] ye erisen komutlari gorebilecegiz. Goreceksiniz ki 2 yerde, [0050701C] de 3 olmasi gereken degerimiz 0 laniyor.
:004F135E 6683251C70500000 and word ptr [0050701C], 0000 <-- 1
:004F15D9 6683251C70500000 and word ptr [0050701C], 0000 <-- 2
Bu 2 adresi de patch ettikten sonra program Business Edition olarak calisiyor. Denemek icin Save komutunu secelim. Unlicensed seklinde hata verdi. [bpx hmemcpy] --> Continue secelim. Pixmaker.exe koduna gelene kadar --> [F12]
:005016B7 8B4508 mov eax, dword ptr [ebp+08] <-- buradayiz
Bizi buraya getiren cagriyi bulmak icin yine Back Trace Buffer kullanilabilir. Ama biraz asagida gorunen RET komutlari yuzunden [F10] ile devam edebiliriz. Neticede bizi buraya getiren cagriyi bulmus olmamiz onemli.
:004A879A 66391D64705000 cmp word ptr [00507064], bx <-- License check
:004A87A1 895DEC mov dword ptr [ebp-14], ebx
:004A87A4 895DE8 mov dword ptr [ebp-18], ebx
:004A87A7 895DE4 mov dword ptr [ebp-1C], ebx
:004A87AA 7511 jne 004A87BD
:004A87AC 8B4508 mov eax, dword ptr [ebp+08]
:004A87AF 50 push eax
:004A87B0 8B08 mov ecx, dword ptr [eax]
:004A87B2 FF91040A0000 call dword ptr [ecx+00000A04] <-- Unlicensed
[00507064] deki degerimizin de 3 olmasi gerekiyor. [bpm 507064] -->
4F1795, 4F1D7E, 4F17E9, 4F10B8, 49B777, 49B782 adreslerinde durduk.
:0049B777 66A364705000 mov word ptr [00507064], ax
:0049B77D E8FE620500 call 004F1A80
:0049B782 66A364705000 mov word ptr [00507064], ax <-- son durak
Program calismadan once en son 49B782 de durdugu icin, yalnizca burayi patch ederek sansimizi deneyelim. Evet, artik hersey duzgun calisiyor. Eger hata verse idi, diger 5 adresi de patch edecektik.
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.