|
Telet v3.18 |
|
amois |
|
Program Tipi: Adres Etiket |
|
Araçlar:
SoftICE, DeDe |
|
|
|
|
Bu yazida size bir programin bircok sekilde crack edilebilecegini anlatmaya calisacagim ve sonunu da Key Generator yazarak baglayacagim.
|
|
30 kez calistirma siniri ile geliyor ve Delphi ile yazilmis. DeDe ile yukledikten sonra;
Procedures --> registerp --> Checkregister --> bolumunu incelemeye baslayalim.
:004C3BF3 call 004096C4
:004C3BF8 test al, al
:004C3BFA jne 004C3D60
<-- Registered
:004C3C00 mov eax, 004C3DCC
:004C3C05 call 004096C4
:004C3C0A test al, al
:004C3C0C jne 004C3C55
<-- Unregistered
...
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004C3C0C(C)
|
:004C3C55 mov edx, 004C3DCC
:004C3C5A lea eax, dword ptr [ebp+FFFFFE34]
...
:004C3C9D call 00402888
:004C3CA2 cmp ebx, 0000001E
<-- 30 ile
check
:004C3CA5 jnl 004C3D3D
<-- kotu cocuk
:004C3CAB inc ebx
<-- ebx=ebx+1
...
:004C3CE9 call 004067F8
:004C3CEE call 00402888
:004C3CF3 push 00000000
* Possible String Reference to: -->Telet Adres Etiket
programinin demo suresinin bitimine -->
|
:004C3CF5 push 004C3DF4
:004C3CFA lea edx, dword ptr [ebp+FFFFFE2C]
:004C3D00 mov eax, 0000001E
<-- eax=30
:004C3D05 sub eax, ebx
<-- eax=30-ebx
:004C3D07 call 00409508
:004C3D0C push dword ptr [ebp+FFFFFE2C]
* Possible String Reference to: --> kullanim kaldi.-->
Artik hersey kolay goruluyor. Patch yapmak icin seceneklerimiz mevcut;
1- 4C3CA2 adresinde ebx degerini 0 yapmak. (hala
unregistered)
2- 4C3CAB adresini NOP lamak. (kullanim sayisi hic
artmayacak, hala unregistered)
3- 4C3BFA adresinde JUMP yapmak. (registered)
Patch icin 1 veya 2 inci secenegi secersek daima 29 kullanim hakki kaldigini
soyleyecek. Menuden "Program kodunu girin" secenegi
mevcut. Burada verilen numaraya karsi bir password girmek gerekiyor. Sallama bir
password girince;
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004C3785(C), :004C37FF(C),
:004C3879(C), :004C38F3(C),
:004C396D(C)
|
:004C39EE push 00000000
:004C39F0 mov cx, word ptr [004C3AFC]
:004C39F7 xor edx, edx
* Possible String Reference to: -->Girdiginiz kod
gecersizdir.-->
|
:004C39F9 mov eax, 004C3BA4
Girdigimiz kodun gecersiz oldugunu soyleyen cagriya toplam 5 yerden geliyoruz.
Bu 5 adresi NOP larsak "Tesekkurler.." bolumune
gelecegiz ve program artik registered olacak.
Programi degisik sekilde crack etmeye devam ediyoruz. Simdi de, verilen "onay
kodu" icin gecerli "program kodu" nu
bulalim.
016F:004C3779 MOV EDX,[EBP-01F0]
<-- [d edx] = ?
016F:004C377F POP EAX
<-- girdigimiz kodun ilk harfi
016F:004C3780 CALL 00404144
<-- edx ile eax karsilastiriliyor
016F:004C3785 JNZ 004C39EE
<-- gecersiz kod
Yukarida acikladigim uzere, gecersiz kod cagrisina 5 yerden gonderiliyoruz. Bu 5
adresin hemen uzerindeki cagri girdigimiz kod ile olmasi gerekeni
karsilastiriyor. Olmasi gereken kod ise edx de duruyor ve [d
edx] ile gorebiliriz. Bu islemi 5 adres icin yaptigimiz zaman 5 tane harf
elde edecegiz. Ornegin;
9257-8696-1372-5552 --> onay kodu icin -->
C K P S F --> degerleri olustu.
Son olarak da KeyGen algoritmasini cozmeye calisalim. (Boylelikle Mr_STOP dan
firca yemekten kurtulacagimi saniyorum)
016F:004C3751 MOV EDX,00000002
<-- edx = 2
016F:004C3756 MOV EAX,[EBP-04]
<-- [d eax] = "9257"
016F:004C3759 CALL 0040423C
016F:004C375E MOV EAX,[EBP-01F4]
<-- [d eax] = "2"
016F:004C3764 CALL 00409538
016F:004C3769 MOV EDX,EAX
<-- edx = eax = 2
016F:004C376B ADD EDX,41
<-- edx = 2+65 = 67 = "C"
016F:004C376E LEA EAX,[EBP-01F0]
016F:004C3774 CALL 00403F5C
016F:004C3779 MOV EDX,[EBP-01F0]
<-- [d edx] = "C"
Onay kodunun ilk sayisi 9257 ve
4C3751 de edx=2. Onay
kodunun soldan edx inci basamagi alinip
4C376B deki sayi (41h = 65) kadar ilave edilerekten
ilk harf "C" bulunuyor.
016F:004C37CB MOV EDX,00000003
<-- edx = 3
016F:004C37D0 MOV EAX,[EBP-04]
<-- [d eax] = "9257"
016F:004C37D3 CALL 0040423C
016F:004C37D8 MOV EAX,[EBP-0204]
<-- [d eax] = "5"
016F:004C37DE CALL 00409538
016F:004C37E3 MOV EDX,EAX
<-- edx = eax = 5
016F:004C37E5 ADD EDX,46
<-- edx = 5+70 = 75 = "K"
016F:004C37E8 LEA EAX,[EBP-0200]
016F:004C37EE CALL 00403F5C
016F:004C37F3 MOV EDX,[EBP-0200]
<-- [d edx] = "K"
Onay kodunun yine ilk sayisi 9257 ve
4C37CB de edx=3. Onay
kodunun soldan edx inci basamagi alinip 4C37E5 deki sayi (46h = 70) kadar ilave
edilerekten ikinci harf "K" olarak
bulunuyor. Son olarak 3 uncu harfi aciklayacagim. Gerisini siz bulun artik.
016F:004C3845 MOV EDX,00000001
<-- edx = 1
016F:004C384A MOV EAX,[EBP-08]
<-- [d eax] = "8696"
016F:004C384D CALL 0040423C
016F:004C3852 MOV EAX,[EBP-0214]
<-- [d eax] = "8"
016F:004C3858 CALL 00409538
016F:004C385D MOV EDX,EAX
<-- edx = eax = 8
016F:004C385F ADD EDX,48
<-- edx = 8+72 = 80 = "P"
016F:004C3862 LEA EAX,[EBP-0210]
016F:004C3868 CALL 00403F5C
016F:004C386D MOV EDX,[EBP-0210]
<-- [d edx] = "P"
KeyGen olarak yine AutoLISP kullanacagim.
(DEFUN C:TELET ()
(atoms-family 0)
(setq onay_kodu (getstring "\nOnay Kodu")
onay_1 (chr (+ 65 (atoi (substr
onay_kodu 2 1))))
onay_2 (chr (+ 70 (atoi (substr
onay_kodu 3 1))))
onay_3 (chr (+ 72 (atoi (substr
onay_kodu 6 1))))
onay_4 (chr (+ 80 (atoi (substr
onay_kodu 12 1))))
onay_5 (chr (+ 65 (atoi (substr
onay_kodu 18 1))))
program_kodu (strcat onay_1
onay_2 onay_3 onay_4 onay_5))
(princ program_kodu)(princ)
)
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.