|
MapEdit v2.64 |
|
amois |
|
Program Tipi: Utility |
|
Araηlar:
SoftICE |
|
|
|
|
??
|
Yazı |
Unlock bolumune 19071907 sallama seriali girelim. [bpx MessageBoxA]
--> [F11]
0167:0041644A CALL 00416270
<-- kontrol
0167:0041644F TEST EAX,EAX
0167:00416451 JNZ 0041646D
<-- iyi cocuk
0167:00416453 PUSH EBX
0167:00416454 CALL 00416560
<-- HATA
41644A da iken [d eax] ile girdigimiz sallama seriali gorebiliriz. Kontrol
sonucunda eax degerimiz 0 olarak geri dondu ve hataya sebep oldu. [bpx 41644A]
-->
[F8]
...
0167:00416288 PUSH 00449C1C
<-- BKMNBKBA
0167:0041628D PUSH 00449BF0
<-- 19071907
0167:00416292 XOR EBX,EBX
0167:00416294 MOV [ESP+1C],ESI
0167:00416298 CALL 004329A0
<-- esitler mi ?
0167:0041629D ADD ESP,0C
0167:004162A0 TEST EAX,EAX
0167:004162A2 JZ 0041631D
<-- degiller
0167:004162A4 PUSH 08
0167:004162A6 PUSH 00449C10
<-- BJJNBKBA
0167:004162AB PUSH 00449BF0
<-- 19071907
0167:004162B0 CALL 004329A0
<-- esitler mi ?
0167:004162B5 ADD ESP,0C
0167:004162B8 TEST EAX,EAX
0167:004162BA JZ 0041631D
<-- degiller
Bu kontrol ilk basta sazan gibi atlamamiza neden olsa da, sonradan kendimizi
hizlica toparliyoruz. Cunku, 41631D ye zipladiktan sonra eax degerimiz 0 oluyor.
0167:004162BC XOR EAX,EAX
0167:004162BE XOR ECX,ECX
0167:004162C0 MOV CL,[EAX+00449BF0]
<-- 31h --> 1
0167:004162C6 ADD ECX,-41
<-- FFFFFFF0
0167:004162C9 CMP ECX,0F
0167:004162CC JA 0041631D
<-- 15 den kucukse cik
0167:004162CE MOV EDX,ESI
0167:004162D0 IMUL EDX,ECX
0167:004162D3 ADD EBX,EDX
0167:004162D5 SHL ESI,04
0167:004162D8 INC EAX
0167:004162D9 CMP EAX,08
0167:004162DC JL 004162BE
Buradaki dongude girdigimiz serial karakter bazinda bir isleme giriyor.
Karakterin ASCII degerinden 41h cikarilip 15 den kucuk olup olmadigi kontrol
ediliyor. 15 den buyuk ciktigi anda 41631D ye ziplayarak hata veriyor. 4162DC
deki kontrolden girmemiz gereken serialin 8 basamak oldugunu da anliyoruz. Sonuc
olarak girmemiz gereken serial A ile P harfleri arasinda ve 8 basamakli
olmali. Girdigimiz serilalin buyuk harfe cevrildigini de unutmayalim.
Sallama serialimizi ABCDEFGH seklinde girince, dongu sonucunda ebx =
76543210
oldu. Bunun anlami --> Serialimizi olusturan harflerin A ya olan uzakliklari,
sagdan sola dogru diziliyor. Son harfimiz H nin A ya olan uzakligi --> H A =
7, G A = 6 ...
0167:004162DE CMP EBP,EBX
<-- ebx = 76543210
0167:004162E0 JAE 0041631D
0167:004162E2 MOV ECX,[0044A808]
<-- ecx = 61E
0167:004162E8 MOV EDX,[0044A80C]
<-- edx = 1
0167:004162EE MOV EAX,[ESP+10]
<-- eax = 1
0167:004162F2 ADD EBP,EDI
0167:004162F4 ADD EDI,EAX
0167:004162F6 CMP EDI,ECX
0167:004162F8 JZ 004162FE
0167:004162FA CMP EDI,EDX
0167:004162FC JNZ 00416304
0167:004162FE NEG EAX
0167:00416300 MOV [ESP+10],EAX
0167:00416304 CMP EBP,EBX
<-- gecerli serial mi ?
0167:00416306 JZ 00416312
<-- iyi cocuk
0167:00416308 JB 004162EE
0167:0041630A XOR EAX,EAX
0167:0041630C POP EDI
0167:0041630D POP ESI
0167:0041630E POP EBP
0167:0041630F POP EBX
0167:00416310 POP ECX
0167:00416311 RET
0167:00416312 MOV EAX,00449BF0
<-- iyi cocuk
0167:00416317 POP EDI
0167:00416318 POP ESI
0167:00416319 POP EBP
0167:0041631A POP EBX
0167:0041631B POP ECX
0167:0041631C RET
416304 de ebx in ebp ye esit olmasi gerekiyor. Ancak bu sekilde eax degerimiz 0
olmaktan kurtulacak.
416304 de iken ebp =
01A1D991 --> A ya olan uzaklik
cinsinden yazarsak --> BJJNBKBA. Olay biraz daha acikliga kavustu. Normalde bu
serial yukarida program tarafindan eleniyor. 4162EE ile 416308 arasinda bir
dongu var. Dongu sirasinda ebp nin aldigi ikinci deger 01A1DCA1 --> BKMNBKBA. Bu
deger de yukarida eleniyordu. Ucuncu aldigi deger ise --> 01A1DF??
--> ??PNBKBA
--> Gecerli seriali bulduk.
Burada kucuk bir noktaya dikkat cekmek istiyorum. Denemelerimiz sirasinda
girecegimiz sallama seriale bagli olarak program kilitlenmis havasi verebiliyor.
Yani, 4162EE ile 416308 arasindaki dongude uzun zaman takilip kalabiliyor.
Kuvvetli bir koruma olmasa da, bence en azindan zarif. Olayi anlayamayan birinin
gecerli serial bulmasi zor. Yani, 4162EE ile 416308 arasindaki donguyu en az 2
kez gecince, gecerli serial bulunabiliyor.
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.