|
Resource Builder v1.0 (build 1.1.0) |
|
amois |
|
Program Tipi: * |
|
Araηlar:
SoftIce |
|
|
|
|
"Bizi dogrulayani dostca kabullenir, karsi cikana da inatla direniriz. Oysa sagduyu tam tersini gerektirir, ozellikle bilim is basinda oldugu zaman."
|
Yazı |
Verilen bir Registration ID icin Key isteniyor. Bendeki deger SVEs5GOl
->
Sallama Key 1907 -> [bpx
hmemcpy] -> [F12] ->
0049D39B MOV EAX,[EBP-04]
<- 1907
0049D39E CALL 0049D260
<- eax = 0 oldu
0049D3A3 MOV ESI,EAX
<- esi = 0
0049D3A5 LEA EDX,[EBP-08]
0049D3A8 MOV EAX,[EBX+000002D4]
0049D3AE CALL 00436AF8
0049D3B3 MOV EAX,[EBP-08]
<- SVEs5GOl
0049D3B6 CALL 0049D260
<- eax = 2F1618DE oldu
0049D3BB XOR EAX,[004C4198]
<- eax = E0E92C62 oldu
0049D3C1 SUB ESI,EAX
<- esi ile eax ayni olmali
0049D3C3 JNZ 0049D441
<- kotu cocuk
49D39E cagrisi sonrasinda eax degerimiz 0 yerine
E0E92C62 olarak donerse Registered olacagiz. [bpx
49D39E] ->
...
0049D289 CALL 00403E64
<- sallama key uzunlugu
0049D28E CMP EAX,08
<- 8 digit mi ?
0049D291 JNZ 0049D2DF
<- kotu cocuk
Sallama Key -> 87654321 ->
0049D2A1 MOV ESI,00000001
<- Sallama Key digit konumu
0049D2A6 MOV DWORD PTR [EBP-0C],004C4118
0049D2AD XOR EDX,EDX
0049D2AF MOV EAX,[EBP-0C]
<- sabit tablo
0049D2B2 MOV ECX,[EBP-04]
<- 87654321
0049D2B5 MOV CL,[ESI+ECX-01]
<- 8 7 6 5 4 3 2 1
0049D2B9 CMP CL,[EAX]
0049D2BB JNZ 0049D2D0
0049D2BD MOV EAX,ESI
0049D2BF DEC EAX
0049D2C0 MOV ECX,EAX
0049D2C2 SHL ECX,02
0049D2C5 XOR EAX,EAX
0049D2C7 MOV AL,DL
0049D2C9 SHL EAX,CL
0049D2CB ADD [EBP-08],EAX
0049D2CE JMP 0049D2D7
0049D2D0 INC EDX
0049D2D1 INC EAX
<- tabloda 1 digit ilerle
0049D2D2 CMP DL,10
<- tablodan 16 digit okuduk mu ?
0049D2D5 JNZ 0049D2B2
0049D2D7 INC ESI
<- Sallama Key bir sonraki digit
0049D2D8 ADD DWORD PTR [EBP-0C],10
0049D2DC DEC EDI
0049D2DD JNZ 0049D2AD
Buradaki dongu, sallama key digitlerimizi sabit tabloda ariyor.
016F:004C4118 61 41 42 57 30 78 4C 39-44 73 64 66 72 76 53 34 aABW0xL9DsdfrvS?
016F:004C4128 48 63 5A 44 32 6E 4A 33-65 68 35 53 6B 56 77 67 HcZD2nJ3eh5SkVw?
016F:004C4138 4A 53 7A 33 66 43 4E 34-45 48 65 41 35 47 30 57 JSz3fCN4EHeA5G0?
016F:004C4148 72 73 57 36 6B 4C 33 37-52 50 31 51 38 70 30 35 rsW6kL37RP1Q8p0?
016F:004C4158 59 78 76 32 75 4B 35 38-74 77 58 67 6B 6D 33 79 Yxv2uK58twXgkm3?
016F:004C4168 69 47 4E 38 55 61 33 39-63 57 4F 58 70 48 32 6B iGN8Ua39cWOXpH2?
016F:004C4178 49 6A 6D 50 34 73 38 32-54 65 4C 4B 39 64 68 4F IjmP4s82TeLK9dh?
016F:004C4188 4F 70 6C 4C 38 51 30 31-74 32 35 66 75 33 37 77 OplL8Q01t25fu37?
Sallama keyin n. digiti, tablonun n. satirindaki degerlerle karsilastiriliyor.
Esitlik saglanmazsa 0 degeri olusuyor. 87654321 degerimiz icin sonuc 7760F000
oldu. 87654321 degerlerinin konumlarini yazalim -> 0 0 0 15 0 6 7 7 -> kolayca
gorecegimiz uzere, sonucun tersten yazilmis haline esit. Saymaya 0dan
basliyoruz tabii ki. Elde etmemiz gereken deger
E0E92C62. Bu deger, girmemiz gereken Keyin tablodaki konumlarina
esit olmali.
E -> satir 8, sutun E -> 7
0 -> satir 7, sutun 0 -> I
E -> satir 6, sutun E -> 2
9 -> satir 5, sutun 9 -> w
2 -> satir 4, sutun 2 -> W
C -> satir 3, sutun C -> 5
6 -> satir 2, sutun 6 -> J
2 -> satir 1, sutun 2 -> B
Gecerli serial BJ5Ww2I7 oldu. Peki KeyGen
?
0049D3B3 MOV EAX,[EBP-08]
<- SVEs5GOl
0049D3B6 CALL 0049D260
<- eax = 2F1618DE oldu
0049D3BB XOR EAX,[004C4198]
<- eax = E0E92C62 oldu
Burada da ayni cagri var. Sadece [004C4198]deki sabit degerle XOR islemi
gerceklesiyor.
SVEs5GOl -> tablo konumlari -> E D 8 1 6 1 F 2 ->
2F1618DE
Artik, KeyGen yazabilmek icin butun bilgilere sahibiz.
1- Registration IDnin sabit tablodaki konumlarini bul
2- Bu degeri [004C4198]deki sabit degerle XOR yap.
3- Cikan sonucun digitlerini sabit tabloda buluver.
tablo = "aABW0xL9DsdfrvS?... OplL8Q01t25fu37?"
; sabit tablo
serial = "SVEs5GOl"
; Registration ID
sabit = &HCFFF34B?
; [004C4918]deki sayi
For satir = 8 To 1 Step -1
; tersten geliyoruz
digit = Mid(serial, satir, 1)
; l O G 5 s E V S
For sutun = 0 To 15
harf = Mid(tablo, ((sutun + 1) + (satir - 1) * 16), 1) ; a A B W 0 x L 9 ...
If harf = digit Then
deger = deger + CStr(Hex(sutun))
; 2 2F 2F1 2F16 2F168 ...
GoTo sonraki
End If
Next sutun
deger = deger + "0"
; tabloda yoksa 0 koy
sonraki:
Next satir
; deger = 2F1618DE
sonuc = CDbl("&h" + deger) Xor sabit
; sonuc = -521589662
If sonuc < 0 Then sonuc = CDbl(sonuc + 4294967296#) ; sonuc =
3773377634
Call cevir_16(sonuc)
; sonuc = E0E92C62
i = 1
For j = 8 To 1 Step -1
sonuc_digit = CInt("&h" + Mid(sonuc, j, 1))
; 2 6 C 2 9 E 0 E
konum = sonuc_digit + 1 + (i - 1) * 16
; tablodaki konumlari
Key = Key + Mid(tablo, konum, 1)
; B BJ BJ5 BJ5W ...
i = i + 1
Next j
MsgBox (Key)
; BJ5Ww2I7
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.