|
Excel Link 2000 |
|
amois |
|
Program Tipi: AutoCAD Plugin |
|
Araçlar:
SoftIce |
|
|
|
|
"Karsilastigimiz herhangi bir problem, o problemi yaratmis oldugumuz zamandakiyle ayni olan dusunce duzeyinde cozulemez."
|
Yazı |
Verilen bir Request Code (bendeki deger
12B9684A99CDA5FE4D8B3E9B06BDAA27) icin serial isteniyor. "1907"
-> [bpx hmemcpy] -> [F12]
->
0167:100130BD
CALL 1001798A
0167:100130C2 LEA ECX,[ESP+0C]
<- buradayiz
0167:100130C6 CALL 100179A2
...
Memory kontrol ve [F10] esliginde ilerleyelim ->
0167:1001311C
PUSH EAX
<- 1907
0167:1001311D MOV ECX,EDI
0167:1001311F CALL 10014DD0
<- ??
0167:10013124 MOV EDI,EAX
0167:10013126 CMP EDI,EBX
0167:10013128 JZ 100131A2
0167:1001312A PUSH 00000200
0167:1001312F LEA ECX,[ESP+14]
...
0167:10013188 MOV BYTE PTR [ESP+30],03
0167:1001318D CALL 100177B6
<- Hata
[bpx 1001311F] -> [F8]
->
...
0167:10014E4F PUSH ECX
0167:10014E50 PUSH EDX
<- 12B9684A99CDA5FE4D8...
0167:10014E51 PUSH EDI
<- Excellink
0167:10014E52 MOV ECX,ESI
0167:10014E54 CALL 100150A0
<- ?
0167:10014E59 TEST AL,AL
0167:10014E5B JNZ 10014E67
<- kotu cocuk
0167:10014E5D MOV EAX,00000001
<- iyi cocuk
0167:10014E62 JMP 10015008
0167:10014E67 CMP [ESP+14],BL
[bpx 10014E54] -> [F8]
->
0167:100150B4
PUSH ECX
<- 12B9684A99CDA5FE4D8...
0167:100150B5 PUSH EDX
0167:100150B6 PUSH EAX
<- Excellink
0167:100150B7 CALL 10015C30
<- ?
0167:100150BC MOV EDX,[ESP+2C]
<- 1907
0167:100150C0 LEA ECX,[ESP+10]
<- :)
0167:100150C4 PUSH ECX
0167:100150C5 PUSH EDX
0167:100150C6 CALL [1001B5C0]
<- esitler mi ?
0167:100150CC TEST EAX,EAX
0167:100150CE SETZ AL
0167:100150D1 ADD ESP,24
0167:100150D4 RET 0010
Gecerli seriali bulduk. Peki Keygen ? -> [bpx 100150B7]
-> [F8] ->
0167:10015CF5
LEA EAX,[ESP+14]
0167:10015CF9 LEA ECX,[ESP+24]
<- Excellink12B9684A99CDA...
0167:10015CFD PUSH EAX
0167:10015CFE PUSH ECX
0167:10015CFF LEA ECX,[ESP+14]
0167:10015D03 CALL 10017530
<- ?
0167:10015D08 MOV EDX,[ESP+14]
<- edx = E99E12BA
0167:10015D0C LEA EAX,[ESP+18]
<- sonuc buraya
0167:10015D10 PUSH EDX
0167:10015D11 PUSH 10023D34
<- %08X
0167:10015D16 PUSH EAX
0167:10015D17 CALL [1001B5BC]
<- cevir
10015D03'deki cagri oncesinde, "Excellink" ve
Request Code birlesmis durumdalar. Daha sonra cagri
sonucu cikan deger "%08X" formatina cevriliyor. [bpx
10015D03] -> [F8] ->
0167:10017587
MOV EDI,[EBP+08]
<- Excellink12B9684A99CDA...
0167:1001758A MOV BL,[EDI]
0167:1001758C TEST BL,BL
0167:1001758E JZ 100175B4
0167:10017590 MOV EDX,[ESI]
<- baslangicta FFFFFFFF
0167:10017592 AND EBX,000000FF
0167:10017598 MOV EAX,EDX
0167:1001759A AND EAX,000000FF
0167:1001759F XOR EAX,EBX
0167:100175A1 MOV EBX,[ECX+04]
<- sabit tablo
0167:100175A4 SHR EDX,08
0167:100175A7 MOV EAX,[EAX*4+EBX]
<- tablodan deger al
0167:100175AA XOR EAX,EDX
0167:100175AC INC EDI
0167:100175AD MOV [ESI],EAX
<- dongu sonucu buraya
0167:100175AF JMP 1001758A
0167:100175B1 MOV ESI,[EBP+0C]
0167:100175B4 MOV ECX,[ESI]
<- 1661ED45
0167:100175B6 MOV EAX,[EBP-14]
0167:100175B9 NOT ECX
<- E99E12BA
100150C0'de [d ecx] ile gordugumuz deger
E99E12BA'dan farkli bir deger. Cunku, digitlerin yerleri degistirildi. Ayrica,
100175A1'de ebx'e atanan deger, sabit bir tablonun offset degeri. Bu tablonun
dump edilmesi gerekiyor. Tablo uzunlugunu 100175A7'deki koddan anliyoruz -> FFh
* 4 = 3FCh
0167:10015D17
CALL [1001B5BC]
<- %08X formatina cevir
0167:10015D1D MOV ESI,[ESP+00000250]
0167:10015D24 ADD ESP,0C
0167:10015D27 XOR ECX,ECX
0167:10015D29 MOV EAX,10023D0C
<- tablo baslangici
0167:10015D2E MOV EDX,[EAX]
<- kacinci basamak
0167:10015D30 ADD EAX,04
0167:10015D33 INC ECX
0167:10015D34 CMP EAX,10023D2C
0167:10015D39 MOV DL,[EDX+ESP+18]
<-
0167:10015D3D MOV [ESI+ECX-01],DL
<- 9 E E B ? ? ? ?
0167:10015D41 JL 10015D2E
Burada bir dongu var. [d eax] ile gosterilen Memory
bolgesinden deger okunuyor ve buna gore de basamak yerleri kaydiriliyor. [d eax]
->
016F:10023D0C
01 00 00 00 00
00 00 00-03 00 00 00
06 00 00 00 ................ 016F:10023D1C
0? 00 00 00 0? 00 00 00-0?
00 00 00 0? 00 00 00 ................
Yani, gecerli serialin ilk digiti 1.inci basamak olacak (saymaya 0'dan
baslayin). 2.inci digitimiz de 0.inci basamak olacak. 3.uncu digit, 3.uncu
basamak ve 4.uncu digit 6.inci basamak olacak. Kalanlari kendiniz bulacaksiniz.
.data
app_name db "Excellink",0
; sabit
req_code db "12B9684A99CDA...",0
; request code
sonuc db 32h dup(?)
birlesmis db 32h dup(?)
tur db "%08X",0
basamak db 01h,00h,03h,06h,0?h,0?h,0?h,0?h,0
; basamak degistirme
cop db
0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0 ; programdan
tablo db
000h,000h,000h,000h,096h,030h,007h,077h ; 3FCh uzunlugunda tablo
db ...
.code
start:
invoke szCatStr, addr birlesmis, addr app_name
; Excellink
invoke szCatStr, addr birlesmis, addr req_code
; Excellink12B9684A99...
lea edi, birlesmis
lea esi, cop
@1001758A:
mov bl, [edi]
; E x c e l l i n k 1 2 B 9 ...
test bl, bl
; sonuna geldik mi ?
jz @100175B4
mov edx, [esi]
; ilk basta FFFFFFFF
and ebx, 0ffh
mov eax, edx
and eax, 0ffh
xor eax, ebx
lea ebx, tablo
; sabit tablo adresi
shr edx, 08
mov eax, [eax*4+ebx]
xor eax, edx
inc edi
mov [esi], eax
jmp @1001758A
@100175B4:
mov ecx, [esi]
; 1661ED45
not ecx
; E99E12BA
invoke wsprintf, addr cop, addr tur, ecx
; "%08X" formatinda yaz
lea eax, basamak
; 01 00 03 06 ...
xor ecx, ecx
; sayac = 0
@ayar:
movzx edx, byte ptr [eax+ecx]
; 1 0 3 6 ...
mov dl, byte ptr [cop+edx]
; 9 E E B ? ? ? ?
mov [sonuc+ecx], dl
; sonuc serial buraya
inc ecx
; sayaci artir
cmp ecx, 08
; 8 karakter oldu mu ?
jne @ayar
@cikis:
invoke ExitProcess, 0
end start
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.