Resource Builder v1.0 (build 1.1.0)

amois

Program Url: w*w.sicomponents.com
Program Tipi: *

Araηlar:

 

SoftIce

Basit (x)  Orta (x)  Zor ( )  Pro ( )

Başlangıη

 

"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 key’in 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 0’dan basliyoruz tabii ki. Elde etmemiz gereken deger E0E92C62. Bu deger, girmemiz gereken Key’in 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 ID’nin 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
 

Son Notlar

Bir programı kullanarak para kazanıyorsanız, programı satın alın.