Genie Backup Manager v2.1

amois

Program Url: w*w.genie-soft.com
Program Tipi: *

Araçlar:

 

SoftIce

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

Başlangıç

 

"... Fizik labaratuvarinda genellikle ogrencilere bir gazin degisik sicakliktaki basinclari olcturulur. Bir basinc sicaklik grafigi cizildiginde ve grafik olarak geriye uzatildiginda, gazin hic basinc uygulayamayacagi sicaklik bulunabilir. Butun gazlar icin bu sicaklik, mutlak sifir olarak bilinen -273.2 derecedir.. Termodinamigin ucuncu yasasi, mutlak sifira yaklasabilecegimizi ancak, uygulanan yontem ne kadar yaratici olursa olsun, hicbir zaman ulasamayacagimizi soyluyor ..."

 

Yazı

 

amois_fb” ve “1907” -> [bpx hmemcpy] -> [F10] biraz takip ->

00431C2A MOV ECX,[ESI+6C]
00431C2D MOV BYTE PTR [ESP+24],00
00431C32 CALL 0045AD70                       <- ?
00431C37 TEST EAX,EAX
00431C39 JZ 00431C80
...
00431C80 PUSH FF
00431C82 PUSH 10
00431C84 PUSH 000000E0
00431C89 CALL MFC42!ORD_04AF                 <- Hata

[bpx 431C32] ->

...
0045ADD9 MOV EDX,[ESP+34]                    <- “AMOIS_FB”    <- buyuk harfe cevrilmis
0045ADDD MOV EAX,[EDX-08]                    <- 8             <- uzunluk
0045ADE0 CMP EAX,06                          <- en az 6 karakter olmali

[F10] ile devam edelim.

0045AE3A MOV EDX,[ESP+14]                    <- “A”           <- “AMOIS_FB”
0045AE3E LEA ECX,[EBX+34]                    <- U8CYAZ1VW2390XBQRSTDNOPEFG45HIJK????
0045AE41 PUSH EDX                            <- tabloda aranacak
0045AE42 CALL MFC42!ORD_0ACC                 <- ara
0045AE47 MOV EDI,EAX                         <- eax = 4       <- tablodaki yeri
0045AE49 CMP EDI,-01                         <- tabloda var mi ?
0045AE4C JZ 0045AE7E
0045AE4E MOV EAX,EBP
0045AE50 AND EAX,80000001
0045AE55 JNS 0045AE5C
0045AE57 DEC EAX
0045AE58 OR EAX,-02
0045AE5B INC EAX
0045AE5C JNZ 0045AE68
0045AE5E MOV ECX,[ESP+10]                    <- “1” <- “1907”
0045AE62 PUSH ECX                            <- tabloda aranacak
0045AE63 LEA ECX,[EBX+38]                    <- 90XBQRSTHIJKEFG4567LMU8Z1VW23CDN????
0045AE66 JMP 0045AE70
0045AE68 MOV EDX,[ESP+10]
0045AE70 CALL MFC42!ORD_0ACC                 <- ara
0045AE75 CMP EDI,EAX                         <- eax = 18h, edi = 4
0045AE77 JNZ 0045ADE9                        <- kotu cocuk

ilk tabloda “A” karakteri 4.uncu sirada bulunuyor. Sallama serialin ilk digiti de, ikinci tabloda 4.uncu sirada olmak zorunda, yani “B” olmali. [F10] ->


0167:0045AE03 MOV EAX,[ESP+34]
...
0167:0045AE3A MOV EDX,[ESP+14]
0167:0045AE3E LEA ECX,[EBX+34]
0167:0045AE41 PUSH EDX
0167:0045AE42 CALL MFC42!ORD_0ACC
0167:0045AE47 MOV EDI,EAX
...
0167:0045AE5E MOV ECX,[ESP+10]
0167:0045AE62 PUSH ECX
0167:0045AE63 LEA ECX,[EBX+38]
0167:0045AE66 JMP 0045AE70
0167:0045AE68 MOV EDX,[ESP+10]               <- basamak konumu cift olanlar
0167:0045AE6C LEA ECX,[EBX+3C]               <- TKEFH0XBLQ9RM1VYIJ627G458ZNOSUW3????
0167:0045AE6F PUSH EDX
0167:0045AE70 CALL MFC42!ORD_0ACC            <- tablodaki yerlerini bul
0167:0045AE75 CMP EDI,EAX                    <- esitler mi ?
0167:0045AE77 JNZ 0045ADE9
0167:0045AE7D INC ESI
0167:0045AE7E MOV EAX,[ESP+20]               <- user name uzunlugu
0167:0045AE82 INC EBP                        <- sayac
0167:0045AE83 CMP EBP,EAX                    <- user name uzunlugunu gectik mi?
0167:0045AE85 JL 0045AE03                    <- hayir, devam et


[F10] ile takip sirasinda br dongu ile karsilasiyoruz. User Name karakterleri sabit bir tabloda aranirken, sallama serial karakterleri 2 tabloda araniyor. Yani, 45AE6C’deki tablo degisken. Sallama serialde, basamak konumlari tek olanlar bir tabloda, cift olanlar diger tabloda araniyor.

User Name’i olusturan karakterler, 45AE3E’deki tabloda yoksa, 45AE4C’de JUMP yaparak bir sonraki karaktere geciliyor. Butun karakterler tabloda varsa, gecerli serial uzunlugu ile, user name uzunlugu ayni cikiyor. “amois_fb” icin, “_” karakteri tabloda yok ve gecerli serial uzunlugu 8-1=7 olacak.


tablo_1 = "U8CYAZ1VW2390XBQRSTDNOPEFG45HIJK????"         ; user name icin
tablo_2 = "90XBQRSTHIJKEFG4567LMU8Z1VW23CDN????"         ; serial tek basamaklar
tablo_3 = "TKEFH0XBLQ9RM1VYIJ627G458ZNOSUW3????"         ; serial cift basamaklar

isim = "amois_fb”
isim = UCase(isim)                                       ; buyuk harfe cevir
isim_uz = Len(isim)                                      ; user name uzunlugu

For i = 1 To isim_uz
digit_isim = Mid(isim, i, 1)                             ; A O S F
digit_isim_konum = InStr(tablo_1, digit_isim)            ; 5 ...
If digit_isim_konum > 0 Then                             ; tabloda var mi ?
tek = Mid(tablo_2, digit_isim_konum, 1)                  ; tek basamaklar tablosundan al
serial = serial + tek
i = i + 1
End If
digit_isim = Mid(isim, i, 1)                             ; M I _ B
digit_isim_konum = InStr(tablo_1, digit_isim)            ; 36 ...
If digit_isim_konum > 0 Then                             ; tabloda var mi ?
cift = Mid(tablo_3, digit_isim_konum, 1)                 ; cift basamaklar tablosundan al
serial = serial + cift
End If
Next i
 

Son Notlar

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