MERTSOFT MÜŞTERİ,CARİ,STOK, GİDER, SİPARİŞ TAKİP 1.4 |
|
|
|
Program Tipi: Muhasebe Programı |
|
OllyDbg version 1.10,UltraEdit-32 |
|
|
|
|
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.
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.
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.