İcraProfesörü v2.3.0.1

kresuz
Program Url:www.meseyazilim.com
Program Tipi:İcra Takip programı.
     Araçlar:
OllyDbg v1.10,PEiD
Basit (X)  Orta ()  Zor ( )  Pro ( )


Başlangıç

İcraProfesörü Microsoft Visual Basic ile yazılmış,Crypto ve pack yok.Serialle korunuyor.Açılışta bir serial veriyor.Karşılık seriali dogru yazarsak demo yazısı Tamam oluyor. Gercek seriali 2 yoldan bulacagız.Birinci si klasik takip,diğeri tembel işi.Breakpoint ile dogrudan gercek seriali bulacagız.
Yazı

Önce Klasik yol:


Programı olldbg de yükleyip çalıştırın.Lisan bölümünde 1A2-B3C-4D yazın.Ollydbg ye gecin.Program kodları üstünde 
sag tus yapın.Search for==>All referenced text strings  den DEMO yazısını arayıp bulun.Resimde görülen yerdeki DEMO
yazısına F2 ile breakpoint koyun.(Buranın aradıgımız yer  oldugunu üzerindeki TAMAM yazısından anlıyoruz) 
 
Simdi programa dönün.Serialin son bölümünde 5 yazın.Breakpoint calıstı.Ollydbg ye döndük. 00CD68D7 . /7D 36 JGE SHORT 00CD690F 00CD68D9 . |6A 64 PUSH 64 00CD68DB . |EB 29 JMP SHORT 00CD6906 00CD68DD > |8B16 MOV EDX, DWORD PTR DS:[ESI] ;Buraya bir jump var. 00CD68DF . |56 PUSH ESI 00CD68E0 . |FF92 0C030000 CALL NEAR DWORD PTR DS:[EDX+30C] 00CD68E6 . |50 PUSH EAX 00CD68E7 . |8D45 D0 LEA EAX, DWORD PTR SS:[EBP-30] 00CD68EA . |50 PUSH EAX 00CD68EB . |FF15 B0104000 CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>] ; MSVBVM60.__vbaObjSet 00CD68F1 . |8BF0 MOV ESI, EAX 00CD68F3 . |68 F8074700 PUSH 004707F8 ; UNICODE "DEMO" ==>Burada durduk. 00CD68F8 . |56 PUSH ESI 00CD68F9 . |8B0E MOV ECX, DWORD PTR DS:[ESI] ; MSVBVM60.6601A058 00CD68FB . |FF51 54 CALL NEAR DWORD PTR DS:[ECX+54] 00CD68FE . |85C0 TEST EAX, EAX
 
00CD68DD > |8B16 MOV EDX, DWORD PTR DS:[ESI] ;Buraya gelen(yani girdigimiz serialin yanlıs oldugunu programa söyleyen)jumpu bulalım.

00CD68DD satırının üzerine gelin sag tus yapın.Resimi takip edin
 
Mavi bölüme tıklayınca buraya geldik.
 
00CD685E . 83C4 6C ADD ESP, 6C 00CD6861 . 66:85FF TEST DI, DI 00CD6864 . /74 77 JE SHORT 00CD68DD ==>==>DI=0 ise demo degilse kaydet. 00CD6866 . |8B06 MOV EAX, DWORD PTR DS:[ESI] ; MSVBVM60.6601A058 00CD6868 . |56 PUSH ESI 00CD6869 . |FF90 0C030000 CALL NEAR DWORD PTR DS:[EAX+30C] 00CD686F . |8D4D D0 LEA ECX, DWORD PTR SS:[EBP-30] 00CD6872 . |50 PUSH EAX 00CD6873 . |51 PUSH ECX 00CD6874 . |FF15 B0104000 CALL NEAR DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>] ; MSVBVM60.__vbaObjSet 00CD687A . |8BF8 MOV EDI, EAX 00CD687C . |68 D8094700 PUSH 004709D8 ; UNICODE "TAMAM" 00CD6881 . |57 PUSH EDI ; USER32.PeekMessageA

00CD6864 satırından biraz yukarı bakalım.

00CD676C   .  8D85 60FFFFFF     LEA     EAX, DWORD PTR SS:[EBP-A0]
00CD6772   .  52                PUSH    EDX
00CD6773   .  50                PUSH    EAX
00CD6774   .  FFD7              CALL    NEAR EDI                   ;  <&MSVBVM60.__vbaVarCmpEq>Burada Bir karsılastırma var.
00CD6776   .  8D8D 20FFFFFF     LEA     ECX, DWORD PTR SS:[EBP-E0]
00CD677C   .  50                PUSH    EAX
00CD677D   .  8D95 30FFFFFF     LEA     EDX, DWORD PTR SS:[EBP-D0]
00CD6783   .  51                PUSH    ECX
00CD6784   .  8D85 10FFFFFF     LEA     EAX, DWORD PTR SS:[EBP-F0]
00CD678A   .  52                PUSH    EDX
00CD678B   .  50                PUSH    EAX
00CD678C   .  FFD7              CALL    NEAR EDI
00CD678E   .  8D8D 00FFFFFF     LEA     ECX, DWORD PTR SS:[EBP-100]
00CD6794   .  50                PUSH    EAX
00CD6795   .  51                PUSH    ECX
00CD6796   .  FF15 8C114000     CALL    NEAR DWORD PTR DS:[<&MSVBVM60.__vbaVarAnd>]      ;  MSVBVM60.__vbaVarAnd
00CD679C   .  50                PUSH    EAX
00CD679D   .  8D95 C0FEFFFF     LEA     EDX, DWORD PTR SS:[EBP-140]
00CD67A3   .  8D85 D0FEFFFF     LEA     EAX, DWORD PTR SS:[EBP-130]
00CD67A9   .  52                PUSH    EDX
00CD67AA   .  8D8D B0FEFFFF     LEA     ECX, DWORD PTR SS:[EBP-150]
00CD67B0   .  50                PUSH    EAX
00CD67B1   .  51                PUSH    ECX
00CD67B2   .  FFD7              CALL    NEAR EDI
00CD67B4   .  8D95 A0FEFFFF     LEA     EDX, DWORD PTR SS:[EBP-160]
00CD67BA   .  50                PUSH    EAX
00CD67BB   .  52                PUSH    EDX
00CD67BC   .  FF15 8C114000     CALL    NEAR DWORD PTR DS:[<&MSVBVM60.__vbaVarAnd>]      ;  MSVBVM60.__vbaVarAnd
00CD67C2   .  50                PUSH    EAX
00CD67C3   .  FF15 FC104000     CALL    NEAR DWORD PTR DS:[<&MSVBVM60.__vbaBoolVarNull>] ;  MSVBVM60.__vbaBoolVarNull

00CD6774   .  FFD7              CALL    NEAR EDI   ;  <&MSVBVM60.__vbaVarCmpEq>Burada Bir karsılastırma vardı.

Şimdi Bütün breakpointleri kaldırın.Bir sefer F9 a basın.Program çalıssın.Ollydbg de CTRL+G yapın.Önümüze gelen 
ekrana 00CD6774 yazıp OK tusuna basın.F2 ile 00CD6774 satırına Breakpoint koyun.
Programa dönün serialin son bölümüne tekrar 5 yazın breakpoint calıstı.

00CD6774   .  FFD7              CALL    NEAR EDI     ==>Burada durduk. ;  MSVBVM60.__vbaVarCmpEq; <&MSVBVM60.__vbaVarCmpEq>
00CD6776   .  8D8D 20FFFFFF     LEA     ECX, DWORD PTR SS:[EBP-E0]
00CD677C   .  50                PUSH    EAX
00CD677D   .  8D95 30FFFFFF     LEA     EDX, DWORD PTR SS:[EBP-D0]

00CD6774   .  FFD7              CALL    NEAR EDI     ==>Burada durduk.Bir sefer F8 yapın. 

Şimdi ollydbg de sag alt kösede olan yere tıklayın ve aşagıya dogru bakın.Serialleri göreceksiniz.

Serialin 3. Bölümü 

0012F2EC  7C839AA8  kernel32.7C839AA8
0012F2F0  00000001
0012F2F4  00008008
0012F2F8  7C832F31  RETURN to kernel32.7C832F31 from kernel32.7C802501
0012F2FC  001D5F3C  UNICODE "4D5" ==> Girdiğimiz Sallama serial( 3.Bölüm) 
0012F300  01D20004
0012F304  660E0008  MSVBVM60.660E0008
0012F308  001D533C  UNICODE "XXX" ==> Firmaya Giden
0012F30C  0018F6FC  UNICODE "59X" ==> Gercek serial 
0012F310  00000000

Serialin 2. Bölümü 

0012F358  7C95E0F0  RETURN to ntdll.7C95E0F0 from ntdll.RtlLeaveCriticalSection
0012F35C  001D5684  UNICODE "B3C"  ==> Girdiğimiz Sallama serial( 2.Bölüm) 
0012F360  7C95E0D4  RETURN to ntdll.7C95E0D4 from ntdll.7C8FEE02
0012F364  660E0008  MSVBVM60.660E0008
0012F368  001D5374  UNICODE "XXX"  ==> Firmaya Giden
0012F36C  001D36EC  UNICODE "X9X"  ==> Gercek serial 
0012F370  00000000

Serialin 1. Bölümü 

0012F3A0  77D5B418  RETURN to USER32.77D5B418 from USER32.77D52F62
0012F3A4  00008008
0012F3A8  0101000D
0012F3AC  001D18DC  UNICODE "1A2" ==> Girdiğimiz Sallama serial ( 1.Bölüm) 
0012F3B0  01666820
0012F3B4  660E0008  MSVBVM60.660E0008
0012F3B8  0018FA34  UNICODE "XXX" ==> Firmaya Giden
0012F3BC  001D1914  UNICODE "XXX" ==> Gercek serial 
0012F3C0  00000000
0012F3C4  00000002
0012F3C8  7C93A5D0  RETURN to ntdll.7C93A5D0 from ntdll.7C95DECF


Gercek serial icin İkinci yol: 

Yine Programı olldbg de yükleyip çalıştırın.Lisan bölümünde 1A2-B3C-4D yazın.Ollydbg de ALT+E yapın.Modüle bölümünde 
OLEAUT32.DLL üzerinde CTRL+N yapın.SysStringByteLen e F2 ile breakpoint koyun.Programa dönün son seriali girin.
ollydbg ye dönersiniz.

77114CA8 >  8BFF                MOV     EDI, EDI         ==>Burada durdu.
77114CAA    55                  PUSH    EBP
77114CAB    8BEC                MOV     EBP, ESP
77114CAD    8B45 08             MOV     EAX, DWORD PTR SS:[EBP+8]
77114CB0    85C0                TEST    EAX, EAX
77114CB2    74 03               JE      SHORT 77114CB7
77114CB4    8B40 FC             MOV     EAX, DWORD PTR DS:[EAX-4]
77114CB7    5D                  POP     EBP                                              ; OLEAUT32.77120339
77114CB8    C2 0400             RETN    4

Simdi ollydbg de sag alt köseye tıklayın. Breakpointi kaldırmadan bir kac kere F9 yapın.
Yukarıda anlatılanlar gibi aşagıya dogru bakın.Serialleri göreceksiniz.Bu yöntemle kestirmeden seriali gördük.

 

Bu tutoriali yazmaktaki amacım programcılara ,programlarını daha iyi korumaları için yol göstermektir..
Son olarak şunu söyleyeyim:Bir programı kullanarak para kazanıyorsanız,o programı mutlaka satın alın.Emeğe değer verin...
Lisansız kullanımdan tutoriali hazırlayanlar sorumlu değildir.

Son Notlar
Bu yazıda yazım yanlışları , bilgi hatası olabilir.Eğer bir yanlış bulursanız bana mail atın düzeltmeye çalışırım.

E-Mail: kresuz