|
Fax Amatic v.a9.46.19 |
|
amois |
|
Program Tipi: * |
|
Araçlar:
SoftIce |
|
|
|
|
"Tok acin halinden ne anlar ?"
|
Yazı |
Modem sayisi = 4, Workstation sayisi =
1000 -> “amois” , “1907”
-> [bpx hmemcpy] -> [F12]
-> [F10] ile takip
0046DC2F PUSH
ECX
<- Modem sayisi = 4
0046DC30 PUSH EAX
<- Workstation sayisi = 3E8h =
1000
0046DC31 PUSH 0057EA90
<- serial buraya yazilacak
0046DC36 PUSH 004D56F8
<- FaxAmatic
0046DC3B PUSH 0057DC6C
<- amois
0046DC40 MOV [005802C0],EAX
0046DC45 CALL 0046C380
<- hesapla
[bpx 46DC45] -> [F10]
ile dikkatli takip
0046C475 MOV
EAX,[ESP+28]
<- 3E8
0046C479 MOV EDI,0057E890
0046C47E MOV ECX,EAX
<- ecx = 3E8
0046C480 SHL ECX,06
<- ecx = FA00
0046C483 LEA EDX,[EAX+ECX+00011776] <-
edx = 2155E
0046C48A MOV ECX,00000080
0046C48F XOR EAX,EAX
0046C491 PUSH EDX
0046C492 PUSH 004BDDFC
<- %lu
0046C497 PUSH 0057E890
<- buraya yaz
Workstation sayimiz bir islemden gecerek 2155Eh degerini aldi ve %lu formatinda
[57E890] bolgesine 136542 olarak yazildi. [F10] ->
0046C4CD MOVZX
EAX,BYTE PTR [ESP+38] <- eax =
4
0046C4D3 MOV ECX,EDX
0046C4D5 AND ECX,03
0046C4D8 REPZ MOVSB
0046C4DA LEA ECX,[EAX+0D]
<- ecx = 11h
0046C4DD ADD EAX,0C
<- eax = 10h
0046C4E0 IMUL ECX,EAX
<- ecx = 110h
0046C4E3 AND ECX,0000FFFF
<- ecx = 110h
0046C4E9 PUSH ECX
0046C4EA PUSH 004BD33C
<- %u
0046C4EF PUSH 0057E890
<- buraya yaz
Modem sayisi da bir islemden gecerek 46C4E3’de 110h degerini aldi ve %u
formatinda [57E890] adresine 272 olarak yazildi. [F10]
->
0046C576 MOV
CL,[0057E090]
<- “amois136542272FaxAmatic”
0046C57C MOV ESI,[ESP+18]
<- esi = E6h <- sabit
0046C580 CMP CL,BL
0046C582 JZ 0046C5B5
0046C584 MOV EAX,ECX
0046C586 AND EAX,000000FF
0046C58B LEA EDI,[EAX*8+EAX]
0046C58E ADD EAX,EDX
0046C590 LEA EAX,[EDI*2+EAX]
0046C593 ADD ESI,EAX
0046C595 CMP CL,60
0046C598 JAE 0046C59F
0046C59A ADD ESI,15
0046C59D JMP 0046C5A2
0046C59F SUB ESI,15
0046C5A2 MOV CL,[EDX+0057E091]
0046C5A8 INC EDX
0046C5A9 CMP CL,BL
0046C5AB JNZ 0046C584
Burada bir dongu var. [57E090] adresinde, Kullanici adi & Workstation sayisi &
Modem sayisi & sabit “FaxAmatic” birlesmis durumdalar. Bu dongu sonucu esi =
8D43h degerini aliyor.
0046C5C1 PUSH
ESI
<- esi = 8D43h
0046C5C2 MOV ESI,[USER32!wsprintfA]
0046C5C8 PUSH 00507AE0
<- %06lu
0046C5CD REPZ STOSD
0046C5CF PUSH 0057E890
<- buraya
0046C5D4 CALL ESI
<- yaz
[57E890] bolgesinde 036163 degeri olustu.
0046C600 MOVSX
EDX,BYTE PTR [ECX+0057E890] <- 30 33 36 31 36 33
0046C607 ADD EDX,ECX
<- sira no kadar ekle
0046C609 LEA EAX,[ECX*2+0057E090]
0046C610 PUSH EDX
<- 30 34 38 34 ?? ??
0046C611 PUSH 00507AD8
<- %02X
0046C616 PUSH EAX
0046C617 CALL ESI
0046C619 MOV EAX,[ESP+1C]
0046C61D ADD ESP,0C
0046C620 INC EAX
0046C621 PUSH 0057E890
0046C626 MOV [ESP+14],EAX
0046C62A CALL EBP
0046C62C MOV ECX,[ESP+10]
0046C630 CMP ECX,EAX
0046C632 JL 0046C600
Buradaki dongu sonucunda da gercek serial olustu. KeyGen yazarken su bolumleri
olusturacagiz ->
1- Workstation
sayisini isleme sok
-> WS -> 3E8 -> 136542
2- Modem sayisini isleme sok
-> MS -> 4 -> 272
3- Kullanici Adi & WS & MS & “FaxAmatic” birlestir -> BIRLESMIS
4- BIRLESMIS donguye girecek
-> 036163
5- Cikan sonucun basamaklarina ekleme yapilacak -> 30 34 38 34
?? ??
ws = 1000
; workstation sayisi
ws_ = CStr(ws * 2 ^ 6 + ws + &H11776) ; ws_ = 136542
ms = 4
; modem sayisi
ms_ = CStr((ms + &HD) * (ms + &HC)) ; ms_ =
272
isim = "amois"
sabit = "FaxAmatic"
birlesmis = isim + ws_ + ms_ + sabit ; degerler
birlestirildi
bir_uz = Len(birlesmis)
edx = 0: esi = &HE6
; baslangic degerleri
For i = 1 To bir_uz
digit = Asc(Mid(birlesmis, i, 1))
; a m o i s 1 3 6 5 4 2 2 ...
eax = digit
edi = eax * 8 + eax
eax = eax + edx
eax = edi * 2 + eax
esi = esi + eax
If digit >= &H60 Then esi = esi - &H15 Else esi = esi + &H15
edx = edx + 1
Next i
esi = CStr(Format(esi, "000000"))
; 6 basamakli formata cevir
For j = 1 To 6
; sira no kadar ekleme yapilacak
harf = Asc(Mid(esi, j, 1))
harf = CStr(Hex(harf + j - 1))
; 30 34 38 34 ...
serial = serial + harf
; 30 3034 303438 30343834 ...
Next j
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.