AKINSOFT BÜTÜN PROGRAMLAR

kresuz
Program Url: www.akinsoft.com.tr
Program Tipi:GenelProgramlar
     Araçlar:
OllyDbg v1.10,Dup2
Basit (X)  Orta ()  Zor ( )  Pro ( )


Başlangıç

Programlar Serial le korunuyor.Programların hepside aynı algoritma ile serial üretiyor ve kontrol ediyor. Program ve versiyonları değişse bile algoritmalar hep aynı kalıyor.
Yazı


Önce  Mouse ile seçim ve binary kod çıkarmak içinGeneric Patchyazısını okuyun
Seriali bularak işe başlayalım.En kestirme yolu serial bölümünde Firmaya vereceginiz şifrede yazan NX- yazısını data ref.stringlerde 
arayıp bulmak ve breakpoint koymak.
 
Bunun için programı ollydbg de yükleyip çalıştırın.(Ben CafePlus u yükledim)Lisans bölününe gelin.Gerekli yerleri doldurun karşılık şifre ye 12345 yazın tamam tusuna basmadan ollydbye gecin.Program kodları üzerinde sağ tuş yapın.Resimleri takip edin.
 
 
NX- satırına F2 ile breakpoint koyduktan sonra programa dönüp tamam tusuna basın.Breakpoint çalıstı.Olly de program kodlarına döndük.

0069BB1B  |.  BA 80BB6900        MOV EDX,CafePlus.0069BB80           ;  ASCII "N4-"   ==>Burada durduk F8 ile devam
0069BB20  |.  E8 D79BD6FF        CALL CafePlus.004056FC
0069BB25  |.  EB 0B              JMP SHORT CafePlus.0069BB32
0069BB27  |>  8B45 08            MOV EAX,[ARG.1]
0069BB2A  |.  8B55 EC            MOV EDX,[LOCAL.5]


0069BCAF  |.  E8 C00E0000        CALL CafePlus.0069CB74       ==>"N4-" breakpoint in çalıstıgı call
0069BCB4  |.  8D55 F4            LEA EDX,[LOCAL.3]            ==>F8 sonucu döndügümüz yer  yine F8 ile devam
0069BCB7  |.  8B86 2C030000      MOV EAX,DWORD PTR DS:[ESI+32C]
0069BCBD  |.  E8 B21DDFFF        CALL CafePlus.0048DA74
0069BCC2  |.  8B45 F4            MOV EAX,[LOCAL.3]
0069BCC5  |.  BA C0C26900        MOV EDX,CafePlus.0069C2C0                            ;  ASCII "DEMO"
0069BCCA  |.  E8 2D9BD6FF        CALL CafePlus.004057FC
0069BCCF  |.  0F84 99030000      JE CafePlus.0069C06E
0069BCD5  |.  A1 54457600        MOV EAX,DWORD PTR DS:[764554]


0069BD1D  |.  8B45 F0            MOV EAX,[LOCAL.4]==>Gercek serial EAX a [LOCAL.4]den alınıyor
0069BD20  |.  50                 PUSH EAX         ==>Gercek serial şu anda EAX da
0069BD21  |.  8D55 E4            LEA EDX,[LOCAL.7]
0069BD24  |.  8B86 2C030000      MOV EAX,DWORD PTR DS:[ESI+32C]
0069BD2A  |.  E8 451DDFFF        CALL CafePlus.0048DA74
0069BD2F      8B55 E4            MOV EDX,DWORD PTR SS:[EBP-1C]        ==>Girdiğimiz sallama serial EDX e alınıyor
0069BD32  |.  58                 POP EAX                              ==>Gercek serial                
0069BD33  |.  E8 C49AD6FF        CALL CafePlus.004057FC               ==>Karşılastır.
0069BD38      0F85 C5020000      JNZ CafePlus.0069C003                ==>Yanlış ise hata mesajına git.(NOP lanacak.
                                                                         Sonuc ne olursa olsun devam.Ancak yeterli degil.)

[LOCAL.4] de ne varmış.0069BD1D satırının üzerinde space tusuna basın
 
MOV EAX,DWORD PTR SS:[EBP-10] evet EAX a serial [EBP-10]bölgesinden aktarılıyor.Burası çok önemli.Geriye dogru kontrollerde kullanacagız.

0069BD38      0F85 C5020000      JNZ CafePlus.0069C003  satırını nop layıp F8 ile devam edin.              

0069BD33  |.  E8 C49AD6FF        CALL CafePlus.004057FC
0069BD38      90                 NOP
0069BD39      90                 NOP
0069BD3A      90                 NOP
0069BD3B      90                 NOP
0069BD3C      90                 NOP
0069BD3D      90                 NOP
0069BD3E  |.  A1 0C567600        MOV EAX,DWORD PTR DS:[76560C]
0069BD43  |.  8B00               MOV EAX,DWORD PTR DS:[EAX]
0069BD45  |.  8038 30            CMP BYTE PTR DS:[EAX],30
0069BD48      75 71              JNZ SHORT CafePlus.0069BDBB
0069BD4A  |.  A1 0C567600        MOV EAX,DWORD PTR DS:[76560C]
0069BD4F  |.  8B00               MOV EAX,DWORD PTR DS:[EAX]
0069BD51  |.  8078 01 30         CMP BYTE PTR DS:[EAX+1],30
0069BD55  |.  75 64              JNZ SHORT CafePlus.0069BDBB
0069BD57  |.  A1 0C567600        MOV EAX,DWORD PTR DS:[76560C]
0069BD5C  |.  8B00               MOV EAX,DWORD PTR DS:[EAX]
0069BD5E  |.  8078 02 30         CMP BYTE PTR DS:[EAX+2],30
0069BD62  |.  75 57              JNZ SHORT CafePlus.0069BDBB
0069BD64  |.  6A 40              PUSH 40
0069BD66  |.  8D55 DC            LEA EDX,[LOCAL.9]


0069BDE3  |.  BA 06000000        MOV EDX,6
0069BDE8  |.  8B18               MOV EBX,DWORD PTR DS:[EAX]
0069BDEA  |.  FF53 0C            CALL DWORD PTR DS:[EBX+C]                            ;  CafePlus.004817BC
0069BDED  |.  8B86 48030000      MOV EAX,DWORD PTR DS:[ESI+348]
0069BDF3  |.  8B80 20020000      MOV EAX,DWORD PTR DS:[EAX+220]
0069BDF9  |.  8B10               MOV EDX,DWORD PTR DS:[EAX]
0069BDFB  |.  FF52 44            CALL DWORD PTR DS:[EDX+44]
0069BDFE  |.  8D55 D0            LEA EDX,[LOCAL.12]
0069BE01  |.  8B86 2C030000      MOV EAX,DWORD PTR DS:[ESI+32C]
0069BE07  |.  E8 681CDFFF        CALL CafePlus.0048DA74
0069BE0C      8B55 D0            MOV EDX,DWORD PTR SS:[EBP-30]  ==>girdiğimiz sallama serial.Geriye dogru kontrol var
0069BE0F  |.  8B86 48030000      MOV EAX,DWORD PTR DS:[ESI+348]   ;Sallama seriali degil [EBP-10]bölgesinden gercek seriali
0069BE15  |.  8B80 20020000      MOV EAX,DWORD PTR DS:[EAX+220]   ;alması lazım
0069BE1B  |.  8B08               MOV ECX,DWORD PTR DS:[EAX]

Normalde Bu programı patch yapmak için 2 yer yetiyor


0069BD38      0F85 C5020000      JNZ CafePlus.0069C003   orijinal

0069BD38      90                 NOP                     patch
0069BD39      90                 NOP
0069BD3A      90                 NOP
0069BD3B      90                 NOP
0069BD3C      90                 NOP
0069BD3D      90                 NOP


0069BE0C      8B55 D0            MOV EDX,DWORD PTR SS:[EBP-30]  orijinal

0069BE0C      8B55 F0            MOV EDX,DWORD PTR SS:[EBP-10]  patch

Ama biz multiple aynı zamanda generic olan patch yapacagız.Önce ilk yerin kodlarını dup2 için cıkaralım

CafePlus

0069BD20  |.  50                 PUSH EAX         
0069BD21  |.  8D55 E4            LEA EDX,[LOCAL.7]
0069BD24  |.  8B86 2C030000      MOV EAX,DWORD PTR DS:[ESI+32C]
0069BD2A  |.  E8 451DDFFF        CALL CafePlus.0048DA74
0069BD2F      8B55 E4            MOV EDX,DWORD PTR SS:[EBP-1C]        
0069BD32  |.  58                 POP EAX                                        
0069BD33  |.  E8 C49AD6FF        CALL CafePlus.004057FC              
0069BD38      0F85 C5020000      JNZ CafePlus.0069C003                


net personel

00629A06    |.  50                 PUSH EAX
00629A07    |.  8D55 D4            LEA EDX,[LOCAL.11]
00629A0A    |.  8B86 90030000      MOV EAX,DWORD PTR DS:[ESI+390]
00629A10    |.  E8 17B9E5FF        CALL NetPerso.0048532C
00629A15        8B55 D4            MOV EDX,DWORD PTR SS:[EBP-2C]
00629A18    |.  58                 POP EAX                                              
00629A19    |.  E8 4EB7DDFF        CALL NetPerso.0040516C
00629A1E        0F85 E6020000      JNZ NetPerso.00629D0A

50 8D 55 ?? 8B 86 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 55 ?? 58 E8 ?? ?? ?? ?? 0F 85 ?? ?? ?? 00 ==>Orijinal
50 8D 55 ?? 8B 86 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 55 ?? 58 E8 ?? ?? ?? ?? 90 90 90 90 90 90 ==>Patchlı

Programda degişen binary kodları kırmızı renkde olanlar.Değişenlerin yerine ?? yazıyoruz.

İkinci yerin kodları:

CafePlus

0069BDE3  |.  BA 06000000        MOV EDX,6
0069BDE8  |.  8B18               MOV EBX,DWORD PTR DS:[EAX]
0069BDEA  |.  FF53 0C            CALL DWORD PTR DS:[EBX+C]                            ;  CafePlus.004817BC
0069BDED  |.  8B86 48030000      MOV EAX,DWORD PTR DS:[ESI+348]
0069BDF3  |.  8B80 20020000      MOV EAX,DWORD PTR DS:[EAX+220]
0069BDF9  |.  8B10               MOV EDX,DWORD PTR DS:[EAX]
0069BDFB  |.  FF52 44            CALL DWORD PTR DS:[EDX+44]
0069BDFE  |.  8D55 D0            LEA EDX,[LOCAL.12]
0069BE01  |.  8B86 2C030000      MOV EAX,DWORD PTR DS:[ESI+32C]
0069BE07  |.  E8  681CDFFF        CALL CafePlus.0048DA74
0069BE0C      8B55 D0            MOV EDX,DWORD PTR SS:[EBP-30]  
0069BE0F  |.  8B86 48030000      MOV EAX,DWORD PTR DS:[ESI+348]   
0069BE15  |.  8B80 20020000      MOV EAX,DWORD PTR DS:[EAX+220]   
0069BE1B  |.  8B08               MOV ECX,DWORD PTR DS:[EAX]


net personel

00629A4C    |.  BA 06000000        MOV EDX,6
00629A51    |.  8B18               MOV EBX,DWORD PTR DS:[EAX]                           
00629A53    |.  FF53 0C            CALL DWORD PTR DS:[EBX+C]                           
00629A56    |.  8B86 30030000      MOV EAX,DWORD PTR DS:[ESI+330]
00629A5C    |.  8B80 20020000      MOV EAX,DWORD PTR DS:[EAX+220]
00629A62    |.  8B10               MOV EDX,DWORD PTR DS:[EAX]                           
00629A64    |.  FF52 44            CALL DWORD PTR DS:[EDX+44]
00629A67    |.  8D55 D0            LEA EDX,[LOCAL.12] ==>Burası baktığım diğer programlarda değişiyor
00629A6A    |.  8B86 90030000      MOV EAX,DWORD PTR DS:[ESI+390]
00629A70    |.  E8  B7B8E5FF        CALL NetPerso.0048532C
00629A75        8B55 D0            MOV EDX,DWORD PTR SS:[EBP-30]==>MOV EDX,DWORD PTR SS:[EBP-10] ile gercek seriali aldırıyoruz.D0 F0 oluyor.
00629A78    |.  8B86 30030000      MOV EAX,DWORD PTR DS:[ESI+330]
00629A7E    |.  8B80 20020000      MOV EAX,DWORD PTR DS:[EAX+220]
00629A84    |.  8B08               MOV ECX,DWORD PTR DS:[EAX]                          


BA 06 00 00 00 8B 18 FF 53 0C 8B 86 ?? ?? ?? ?? 8B 80 20 02 00 00 8B 10 FF 52 44 8D 55 ?? 8B 86 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 55 ?? 8B 86 ?? ?? ?? ?? 8B 80 20 02 00 00 8B 08
BA 06 00 00 00 8B 18 FF 53 0C 8B 86 ?? ?? ?? ?? 8B 80 20 02 00 00 8B 10 FF 52 44 8D 55 ?? 8B 86 ?? ?? ?? ?? E8 ?? ?? ?? ?? 8B 55 F0 8B 86 ?? ?? ?? ?? 8B 80 20 02 00 00 8B 08


Şimdi ollydbg yi kapatın.Dup2 yi acın.Önce New project e tıklayın.Patch infoya gerekli bilgileri yazın.Saklayıp çıkın.
Sonra Add tusuna basın orada Search & Replace Patch a Çift tıklayın.Sonra ana panoda ki Search & Replace Patch a tıklayın.
Önünüze gelen ekranda target File de *.EXE* yazın.
Search Pattern ne orijinal kod ları ,Replace Pattern ne de patch lı dizilimi sıra ile yazıp add tusuna basın
 
 
Save tusuna basıp cıkın create patch tuşuna basıp patch ı yapın. Programcı eger o yukarıdaki kod dizilişlerini değiştirmez ise bu patch algoritması aynı olan bütün programlarda ve bu programların bundan sonraki bütün versiyonlarda çalışır.


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

http://kresuz.zor.org
http://kresuz.da.ru

;