xGuest Inviter bot v1.81

amois

Program Url: w*w.tools-for.net
Program Tipi: Utility

Araçlar:

 

SoftICE

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

Başlangıç

 

"Yenilsen de yensen de, taraftarin seninle. Iyi gunde, kotu gunde, seninle birlikte."

 

Yazı


Program, PE-Compact ile korunmus. Unpack islemini sizlere birakiyorum.

 

amois” ve “1907” degerlerini girdikten sonra, program tekrardan baslamak istiyor. RegMon ile inceledigimiz zaman ,

HKEY_CURRENT_USER\Software\xGuest\TfmMain\RegistrationKey         <- 1907
HKEY_CURRENT_USER\Software\xGuest\TfmMain\UserName                <- amois

Programin buralardan data okumasini bekleyecegiz.

[bpx RegQueryValueExA if *(esp->8) == ‘User’ do “d esp->14;”] veya

[bpx RegQueryValueExA if *(esp->8) == ‘Regi’ do “d esp->14;”] olabilir.

Breakpoint calistiktan sonra, Memory’de “amois” ve / veya “1907” icin search ederek ilerleyelim. Yani, programin bu verilerle bir islem yaptigi bolumu bulacagiz. Verilerin bulundugu Memory bolgesine breakpoint koyarak, kisa yoldan sonuca gitmek mumkun.

[s 0 l ffffffff ‘amois] veya [s 0 l ffffffff ‘1907] yaparak, degerlerin memorydeki yerlerini arastirin. [bpm XXXXXXXX] ile bu bolgelere breakpoint koyun. Breakpoint calistiktan sonra, [F10] ile trace ederek ne oldugunu anlamaya calisin. Ornegin, bir cagri oncesinde bu degerler push ediliyor ve cagri sonunda “5” veya “4” degerlerini aliyorsa (“amois” = 5, “1907” = 4), 99% string uzunlugu hesaplaniyordur.


Genelde, user name, karakter bazinda bir algoritmaya tabii tutulur. Buradan bir deger cikar. Bu deger sallama serial ile karsilastirilir veya tekrardan ikinci bir isleme girer. Onemli olan, user name’in karakter bazinda isleme girdigi bolumu bulmaktir.

 

Sallama serialler ise, genelde karakter bazinda bir isleme girmez. Direkt veya Hex. donusumu yapildiktan sonra karsilastirma yapilir. Bu anlattiklarim, cok iyi korunan programlarda degisse de, bircok program icin gecerlidir.

...
0167:004D286A MOV EAX,[EBP-10]                 <- 1907
0167:004D286D MOV EDX,[EBP-0C]                 <- ?
0167:004D2870 CALL 00403FD8                    <- esitler mi ?
0167:004D2875 JNZ 004D2897                     <- kotu cocuk

Goruldugu gibi, sallama serial hicbir islemden gecmeden direkt olarak olmasi gereken ile karsilastiriliyor.

KeyGen algoritmasi da biraz yukarida duruyor.

0167:004D283D MOV EDX,00000001                 <- sayac
0167:004D2842 MOV ECX,[EBP-08]                 <- amois
0167:004D2845 MOVZX ECX,BYTE PTR [EDX+ECX-01]  <- a m o i s
0167:004D284A MOV ESI,0001046A                 <- sabit deger
0167:004D284F SUB ESI,ECX
0167:004D2851 IMUL ESI,[004DF144]              <- [004DF144]'de sabit bir deger var
0167:004D2858 ADD EBX,ESI
0167:004D285A INC EDX
0167:004D285B DEC EAX
0167:004D285C JNZ 004D2842

User name, karakter bazinda bir donguden geciyor ve gecerli serial olusuyor.

.data
isim        db "amois",0                             ; user name
isim_uz     dd 0h                                    ; degisken
sonuc       db 32h dup(?)                            ; kullanacagimiz gecici alan

tur         db "%X",0                                ; sonucu Hex. olarak yazacagiz


.code

start:

invoke StrLen, addr isim                             ; user name uzunlugunu bul
mov isim_uz, eax                                     ; isim uzunlugu isim_uz degiskeninde

xor ebx, ebx                                         ; dongu oncesi ayarlar
mov edx, 01                                          ; orjinal programdan

@dongu:
lea ecx, isim                                        ; isim offset degeri ecx’de
movzx ecx, byte ptr [edx+ecx-01]                     ; a m o i s
mov esi, 01046ah                                     ; orjinal programdan
sub esi, ecx                                         ;
imul esi, 0??h                                       ; bu deger orjinal programdan
add ebx, esi                                         ;
inc edx                                              ; sonraki karakter
dec isim_uz                                          ; isim uzunlugunu 1 azalt

jnz @dongu                                           ; karakter kaldi mi ?
                                                     ; dongu sonucu ebx’de gecerli serial

@yaz:

invoke wsprintf, addr sonuc, addr tur, ebx           ; ebx degerini Hex. olarak sonuc'a yaz

invoke MessageBoxA, 0, addr sonuc, addr isim, 0      ; serial ve user name'i goster

 

@cikis:

invoke ExitProcess, 0                                ; programdan cik

 

end start

 

 

Son Notlar

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