"Crypto v3.6" |
|
|
|
|
|
Araçlar:
|
|
|
Sifreleme programi. 30 gunluk deneme surumu ile geliyor.
|
|
Acilista cikan menude kac gun kaldigi ve Unregistered User oldugumuz belirtiliyor.
:00408072 FF156C824100 Call dword ptr [0041826C] :00408078 A1B47D4200 mov eax, dword ptr [00427DB4] -> ?? :0040807D 85C0 test eax, eax :0040807F B8827D4200 mov eax, 00427D82 :00408084 7505 jne 0040808B -> iyi cocuk * Possible StringData Ref from Data Obj ->"UNREGISTERED USER" :00408086 B83CAA4100 mov eax, 0041AA3C
Hemen atlayarak 408084 u patch etmeyecegiz. [00427DB4] deki degerimizin 0 dan farkli olmasi gerekiyor. Buraya deger atayan adres ise ;
:00407C4D E87E710000 call 0040EDD0 :00407C52 8B0DB47D4200 mov ecx, dword ptr [00427DB4] :00407C58 83C408 add esp, 00000008 :00407C5B 3BC8 cmp ecx, eax :00407C5D 7410 je 00407C6F :00407C5F 891DB47D4200 mov dword ptr [00427DB4], ebx -> ebx 1 olmali
407C5F e gelmeden ebx degerini 1 yaparsak “Registered” olacagiz. Simdi de gecerli serial bulmaya calisalim. Sallama degerler girdikten sonra [bpx hmemcpy] --> [F10] ile devam
:00408810 E8BB650000 call 0040EDD0 -> serial hesapla :00408815 83C408 add esp, 00000008 :00408818 3BD8 cmp ebx, eax -> serial dogru mu :0040881A 5F pop edi :0040881B 741D je 0040883A :0040881D 68CFEA0000 push 0000EACF * Possible Reference to String Resource ID=05000: " Register Crypto 2000" :00408822 6888130000 push 00001388 :00408827 55 push ebp :00408828 E8F3DEFFFF call 00406720 -> hata
408810 daki cagri dogru seriali hesaplayip eax e atiyor. 408818 de iken, ebx girdigimiz seriali, eax de olmasi gerekeni iceriyor. Son olarak da KeyGen algoritmasini cozmeye calisalim. [bpx 40EDD0] --> [F10] ile ilerleyelim. Dongu 40C6A4 ile 40C6CD arasinda.
:0040C6A4 movsx ebx, byte ptr [esi+ecx] -> A -> degisken :0040C6A8 movsx ebp, byte ptr [eax+edx+0041C024] -> B -> degisken :0040C6B0 imul ebx, ebp -> C = A x B :0040C6B3 lea ebp, dword ptr [edi+ecx] -> Kacinci harf = D :0040C6B6 imul ebx, ebp -> E = C x D :0040C6B9 movsx ebp, byte ptr [ecx] -> Harfin kendisi = F :0040C6BC imul ebx, ebp -> G = E x F :0040C6BF mov ebp, dword ptr [esp+10] -> H = 0 :0040C6C3 add ebp, ebx -> H = H + G :0040C6C5 inc edx :0040C6C6 inc ecx :0040C6C7 cmp edx, eax :0040C6C9 mov dword ptr [esp+10], ebp :0040C6CD jl 0040C6A4 :0040C6CF mov eax, ebp -> eax = H :0040C6D1 pop edi :0040C6D2 pop ebp :0040C6D3 pop esi -> esi = C69AAB7C :0040C6D4 pop ebx :0040C6D5 pop ecx :0040C6D6 ret :0040EDE7 mov ecx, dword ptr [esp+10] :0040EDEB add esi, eax -> esi = esi + eax :0040EDED push ecx
Burada A ve B disindaki degerleri bulabiliriz. A ve B ise, girilen “User Name” ve “Organization” harf sayilarina bagli olarak degismekte ve bir tablodan alinmakta.
Asagida A ve B degerlerini (Hex) 7 harfe kadar olmak uzere gosterdim.
|
Harf Sayisi
|
A
|
B
|
| 1 |
7C
|
73
|
| 2 |
7C, 62
|
65, 72
|
| 3 |
7C, 62, 21
|
72, 42, 26
|
| 4 |
7C, 62, 21, 70
|
42, 26, 6E, 7A
|
| 5 |
7C, 62, 21, 70, 7A
|
26, 6E, 7A, 7C, 6D
|
| 6 |
7C, 62, 21, 70, 7A, 2A
|
6E, 7A, 7C, 6D, 66, 4D
|
| 7 |
7C, 62, 21, 70, 7A, 2A, 6C
|
7A, 7C, 6D, 66, 4D, 31, 2F
|
Hem “User Name” hem de “Organization” icin H degeri ayri ayri hesaplanmakta ve sabit bir ESI degerine (C69AAB7C) eklenmekte. Artik KeyGen imizi yazabiliriz ve yine AutoLISP. Sitedeki diger programlar icin de ayni KeyGen gecerlidir. Sadece sabit ESI degeri degismektedir.
(DEFUN C:CRYP ()
(atoms-family 0)
(setq user (getstring "\nUser Name =")
orgz (getstring "\nOrganization =")
esi 3332025212. ; *** Crypto v3.6 ***
; esi -19222529. ; *** FxEdit v3.2 ***
sayac1 0 d 1 sayac2 0 ebp 0 kelime user sonuc 0 toplam 0)
(setq liste (list
(list 124 115)
(list 124 101 98 114)
(list 124 114 98 66 33 38)
(list 124 66 98 38 33 110 112 122)
(list 124 38 98 110 33 122 112 124 122 109)
(list 124 110 98 122 33 124 112 109 122 102 42 77)
(list 124 122 98 124 33 109 112 102 122 77 42 49 108 47)))
(repeat 2
(if (= sayac1 1)(setq kelime orgz))
(setq kelime_uzun (strlen kelime)
tablo (nth (- kelime_uzun 1) liste))
(repeat kelime_uzun
(setq f (ascii (substr kelime d 1))
a (nth sayac2 tablo)
b (nth (+ 1 sayac2) tablo)
c (* a b)
e (* c d)
g (* e f)
ebp (+ ebp g)
d (+ 1 d)
sayac2 (+ 2 sayac2))
)
(setq toplam (+ toplam ebp) sayac1 1 sayac2 0 d 1 ebp 0)
)
(setq sonuc (rtos (+ toplam esi) 2 0))
(princ sonuc)(princ)
)
EKLEME:
Bu yaziyi hazirladiktan sonra Tsehp in sitesinde konu ile ilgili bir yazi okudum. Cok daha guzel bir bicimde konuya yaklasilmis ve Brute Force kullanilarak Magic User Name bulunmus. Sitedeki butun programlar icin gecerli.
:004087D4 call 0040C670 :004087D9 add esp, 00000038 :004087DC cmp eax, 0119A792 -> Magic User Name mi ?
Girdigimiz User Name sonucunda ebp hesaplaniyor ve 119A792 ye esit ise Password a gerek kalmadan programi yazan kisi ve firma adina registered oluyorsun.
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.