DVD AVI Converter Plus (Build 030110)

amois

Program Url: w*w
Program Tipi: *

Araçlar:

 

SoftIce

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

Başlangıç

 

"Sadece oluler savasin sonunu gordu."

 

Yazı


Aspack ile paketlenmis, Unpack islemi size ait.

"amois", "amois@fb.org" ve "1907" -> [bpx hmemcpy] -> [F12] -> [F10] biraz takip ->

...
0167:0042D2F6 PUSH EAX                             <- "1907"
0167:0042D2F7 PUSH EDI                             <- "amois@fb.org"
0167:0042D2F8 PUSH ECX                             <- "amois"
0167:0042D2F9 CALL [009F4A78]                      <- util.max -> util.dll
0167:0042D2FF ADD ESP,0C
0167:0042D302 TEST AL,AL
0167:0042D304 PUSH 00
0167:0042D306 JZ 0042D328                          <- kotu cocuk

Registration kontrol islemi util.max dosyasi tarafindan yapiliyor. Aslinda bu bir DLL dosyasi. Cagri sonucunda AL degerimizin 0'dan farkli donmesi gerekiyor. ->

...
0167:014416D6 CALL 01441E60
0167:014416DB MOV EAX,[ESP+18]
0167:014416DF CMP EAX,EBX
0167:014416E1 JZ 01441700
0167:014416E3 LEA ECX,[EAX-01]
0167:014416E6 MOV AL,[EAX-01]
0167:014416E9 CMP AL,BL                            <- [d eax] -> :)

016F:01590B00 00 50 50 4C 46 58 4C 47-53 00 00 00 00 00 00 00 .PPLFXLGS.......
016F:01590B10 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
016F:01590B20 00 00 00 00 00 00 00 00-20 0B 00 00 31 00 00 00 ........ ...1...
016F:01590B30 00 58 4C 47 53 36 00 00-00 00 00 00 00 00 00 00 .XLGS6..........
016F:01590B40 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
016F:01590B50 00 00 00 00 00 00 00 00-50 0B 00 00 31 00 00 00 ........P...1...
016F:01590B60 00 39 37 4E 30 2D 50 50-4C 46 58 4C 47 53 2D 58 .97N0-PPLFXLGS-X
016F:01590B70 4C 47 53 36 00 4C 38 55-31 00 00 00 00 00 00 00 L???.L8U1.......

[F10] takibi sonucunda, gecerli seriali bulduk. KeyGen algoritmasina girmeden ve herhangi bir patch yapmadan nasil KeyGenerator yazabiliriz ? Tabii ki, util.max dosyasinin kendisini kullanarak. 42D2F9'da esp degerimiz 115E318. 14416E6'da gecerli serial 1590B61'de duruyor. Bu bolgeye yazildigi rutini, birazcik [F10] takibi ile bulabilirsiniz. Boylece, gercekte memory'deki yerini tesbit edebilirsiniz. Bu deger ile, esp degerimiz arasindaki fark "Delta" olsun.

.data
dll_adi         db "utils.max",0                   ; dll adi

dll_base        dd 0h                              ; dll base image degeri
fonk_of         dd 15a0h                           ; utils.max'da cagrilan bolum
serial_yer      dd Delta                           ; esp ile fark (04??h)
sonuc           db 32 dup(?)                       ; gecerli serial buraya
sallama         db "1907",0
imeyl           db "amois@fb.org",0
isim            db "amois",0

.code

start:

lea eax, dll_adi                                   ; dll_adi offset degeri
invoke LoadLibraryA, eax                           ; dll yukle
mov ebx, eax                                       ; image base degerini sakla
add ebx, fonk_of                                   ; cagrilan bolumu bul

lea eax, sallama
lea edi, imeyl
lea ecx, isim

push eax
push edi
push ecx
call ebx                                           ; utils.max'daki bolumu cagir
mov eax, esp                                       ; esp degerimiz eax'de
sub eax, serial_yer                                ; serialin memory'deki yeri

@cikis:
invoke MessageBox, 0, addr isim, eax, 0            ; seriali goster
invoke ExitProcess, 0

end start
 

Son Notlar

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