MERTSOFT MÜŞTERİ,CARİ,STOK, GİDER, SİPARİŞ TAKİP 1.4

kresuz
Program Url:www.sisnetbilgisayar.com
Program Tipi: Muhasebe Programı
     Araçlar:
OllyDbg version 1.10,UltraEdit-32
Basit (x )  Orta ( )  Zor ( )  Pro ( )


Başlangıç

MertSoftDemo.exe programının demo limitleri kaldıracağız.Program Microsoft Visual Basic ile yazılmış.Bundan dolayı ollydbg de işimiz biraz zor ama programa biz değişik bir şekilde yaklaşacağız. Ollydbg v1.10 cekin.İşe başlayalım.
Yazı

Programda Müşteri,Stok ve Cari işlemler 20 kayıtla sınırlı.Bizim başlangıç noktamız bu olacak. Mantıklı düşünürsek programcı kayıt sayısını bir yerlerde kontrol edip,kayıt sayısı doldu ise bize aşağıda ki gibi mesajı cıkarması gerekiyor.


Bu mesaj için CMP XXX,14h gibi bir karsılaştırma kodu olması gerekli.(Hex=14 Dec=20).Sonrada duruma göre ya kayıta devam edecek yada demo mesajına gidecek.Bizim limit sayını aşmamız için bu karşılaştırma noktasını bulmamız lazım.

Ollydbg'u açın F3 ile MertSoftDemo.exe dosyasını yükleyin F9 ile yüklenmiş olan programı çalıştırın. 
Programda Müşteri,Stok ve Cari işlemlerde 20 kayıt yapın ve demo limit mesajını hepsinde de ayrı ayrı görün.
Ollydbg a geçin program  kodları önünüzde iken sağ tuş yapın.aşağıdaki işlemleri yapın.Buradaki amacımız 20 ile yapılan 
karşılaştırma yerlerini bulmak ve bpx koymak.

OK tuşuna basın önünüze gele ekranda cmp xxx,14 gibi yerleri arayıp F2 ile bpx koyun.


Evet üç yerde bu koda benzer kodlar var.Onlara bpx koyduktan sonra programa dönün.Müşteri işlemlerinden yeni kayıt a basın.
Breakpoint çalıştı ollydbg ye düştük.

00A00A4A   .  83BD 58FFFFFF 14 CMP     DWORD PTR SS:[EBP-A8], 14            ===>Burada bpx calıstı.Sayıyı kontrol ediyor.
00A00A51   .  0F9DC0           SETGE   AL
00A00A54   .  F7D8             NEG     EAX
00A00A56   .  66:8985 4CFFFFFF MOV     WORD PTR SS:[EBP-B4], AX
00A00A5D   .  8D4D DC          LEA     ECX, DWORD PTR SS:[EBP-24]
00A00A60   .  FF15 70124000    CALL    NEAR DWORD PTR DS:[401270]              ;  
00A00A66   .  8D4D CC          LEA     ECX, DWORD PTR SS:[EBP-34]
00A00A69   .  FF15 24104000    CALL    NEAR DWORD PTR DS:[401024]              ;  
00A00A6F   .  0FBF8D 4CFFFFFF  MOVSX   ECX, WORD PTR SS:[EBP-B4]
00A00A76   .  85C9             TEST    ECX, ECX                                 
00A00A78      0F84 83000000    JE      00A00B01                                ;  Kayıt Sayısı daha 20 degilse kayıta devam
                                                                               ;  Yoksa kayıt doldu mesajı.

00A00A78      0F84 83000000    JE      00A00B01   Daima 00A00B01 e gitmesi lazım.Bunun için patch yapıyoruz.

00A00A78     /E9 84000000      JMP     00A00B01                                ; patch lı hali
00A00A7D     |90               NOP                                             ; Artık sonuca bakmayacak daima kayıt yapacak.


Şimdi Yeni stok kaydına basalım.Breakpoint çalıştı ollydbg ye düştük.

00A015DA   .  83BD 58FFFFFF 14 CMP     DWORD PTR SS:[EBP-A8], 14            ===>Burada bpx calıstı.Sayıyı kontrol ediyor
00A015E1   .  0F9DC0           SETGE   AL
00A015E4   .  F7D8             NEG     EAX
00A015E6   .  66:8985 4CFFFFFF MOV     WORD PTR SS:[EBP-B4], AX
00A015ED   .  8D4D DC          LEA     ECX, DWORD PTR SS:[EBP-24]
00A015F0   .  FF15 70124000    CALL    NEAR DWORD PTR DS:[401270]              ; 
00A015F6   .  8D4D CC          LEA     ECX, DWORD PTR SS:[EBP-34]
00A015F9   .  FF15 24104000    CALL    NEAR DWORD PTR DS:[401024]              ;  
00A015FF   .  0FBF8D 4CFFFFFF  MOVSX   ECX, WORD PTR SS:[EBP-B4]
00A01606   .  85C9             TEST    ECX, ECX
00A01608      0F84 83000000    JE      00A01691                                ; Kayıt Sayısı daha 20 degilse kayıta devam  

00A01608     /E9 84000000      JMP     00A01691                                ; patch lı hali
00A0160D     |90               NOP

Şimdi Yeni Cari kaydına basalım.Breakpoint çalıştı ollydbg ye düştük.

009FE1EA   .  83BD 58FFFFFF 14 CMP     DWORD PTR SS:[EBP-A8], 14            ===>Burada bpx calıstı.Sayıyı kontrol ediyor
009FE1F1   .  0F9DC0           SETGE   AL
009FE1F4   .  F7D8             NEG     EAX
009FE1F6   .  66:8985 4CFFFFFF MOV     WORD PTR SS:[EBP-B4], AX
009FE1FD   .  8D4D DC          LEA     ECX, DWORD PTR SS:[EBP-24]
009FE200   .  FF15 70124000    CALL    NEAR DWORD PTR DS:[401270]              ;  
009FE206   .  8D4D CC          LEA     ECX, DWORD PTR SS:[EBP-34]
009FE209   .  FF15 24104000    CALL    NEAR DWORD PTR DS:[401024]              ;  
009FE20F   .  0FBF8D 4CFFFFFF  MOVSX   ECX, WORD PTR SS:[EBP-B4]
009FE216   .  85C9             TEST    ECX, ECX
009FE218      0F84 83000000    JE      009FE2A1                                ; Kayıt Sayısı daha 20 degilse kayıta devam  

009FE218     /E9 84000000      JMP     009FE2A1                                ; patch lı hali
009FE21D     |90               NOP


Bu yaptıklarımızı kalıcı hale getirelim. Mouse ile kodlar üzerinde sağ tuş yapın. Şu sırayı takip edin.Copy to executable ==>all modifications==>copy all==>önümüze gelen ekranda yine sağtuş==>save file ve farklı bir isimle kaydet. Patch yaptığımız dosyayı çalıştıralım.

Evet 20 kayıt sınırını geçmişiz.Ama programda deneme sürümü yazı var.Onuda kaldıralım işimiz tam olsun. UltraEdit-32 ile patch yaptığınız dosyayı açın.Alt+F3 yapın .Aşağıdaki gibi değişiklikleri yapın.

Değişiklikleri yaptıktan sonra F12 ile farklı bir isimle kaydetin.Kaydettiğiniz dosya yı çalıştırın.Artık elinizde tam sürüm bir program var.


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