Yalnız Mesajı Göster

Cevap : Program Kırma Yöntemlerinin Eğitim Amaçlı İncelenmesi

Eski 07-01-2010   #24
Şengül Şirin
Varsayılan

Cevap : Program Kırma Yöntemlerinin Eğitim Amaçlı İncelenmesi




Soft-ICE'ın kullanımında yaygın bir sıkıntı da, debugger'ın istenilen şekilde başlatılması için autoexecbat dosyasının değiştirilmesidir Soft-ICE'ın Windows'la birlikte mi yoksa istenildiği zaman mı başlatılacağını belirlemek için, autoexecbat ve configsys dosyaları aşağıda verilen şekilde değiştirilebilir Soft-ICE'ın Windows'la birlikte yüklenmesinin dezavantajı, her an aktif olması ve bizim isteğimiz dışında da açılabilmesidir Gerçekleştirilen değişiklikler sayesinde, Windows her başlatıldığında bilgisayarın nasıl açılması gerektiğini soracaktır


Bu satırlar autoexecbat ve configsys dosyalarının sonuna eklenmelidir Dosyanın başına eklendiğinde sorun çıkarır

Autoexecbat dosya örneği
Rem -----Buradan itibaren kopyalanır-------
goto %config%
REM Soft-ICE'ı başlat - softice in kurulu oldugu yere dikkat edilmelidir
:SICE
C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICEEXE
REM Soft-ICE olmadan baslat
:NORM
Rem ----Buradan kesilir------

Configsys dosya örneği
Rem -----Buradan itibaren kopyalanır-------
REM Menüyü olustur
[MENU]
MENUITEM NORM,Windows 98
MENUITEM SICE,SoftICE ile Windows 98
MENUDEFAULT NORM,5
[NORM]
[SICE] Rem ----Buradan kesilir-----

5313 Kullanımı

Kurulum tamamlandıktan ve gerekli düzenlemeler gerçekleştirildikten sonra, programın debug edilmesine geçilir Soft-ICE ile debug edilecek program açıldıktan sonra, Ctrl+D yardımı ile Soft-ICE editörüne geçilir Program, breakpointler ile durdurulur En fazla kullanılan breakpointler, bpx getwindowtexta ve bpx getdlgitemtexta’dır Bu fonksiyonların sonundaki a karakterleri, 32 bit programlar için kullanılacağını göstermektedir Breakpoint konulduktan sonra fonksiyon tuşları yardımıyla kodlar incelenip, düzeltmeler yapılabilir

Bazı durumlarda, bpx getwindowtexta breakpointi konduğunda hata mesajı alınabilir Bunun sebebi, Soft-ICE'ın bu API'yi tanımamasıdır Bu API'nin tanıtılması şu şekilde olacaktır:

Soft-ICE programı ilk kurulduğunda,

1 Symbol loader'a girip Edit menüsünden 'Soft-ICE initilization settings' yazan bölüme 'x: lines 40; wd; wr; wc 20; code on;' yazılır Buradaki 40 ve 20 rakamları kullanılan ekran çözünürlüğüne göre ayarlanabilir 'Code on' komutu assembly komutlarının yanında heksadesimal olarak makine kodlarının da yer almasını sağlayarak, patch hazırlanırken yardımcı olacaktır

2 Winicedat dosyasını not defteri ile açarak, başında EXP ibaresi olan tüm satırların önündeki noktalı virgül ; işaretleri kaldırılmalıdır Bu durumda Soft-ICE, Windows API'lerinden haberdar olacaktır Ayrıca Soft-ICE'ta iken başı hatırlanan bir API'yi bulmak için 'exp' komutu kullanılabilir Mesela, 'exp getwindow' komutu ile getwindow ile başlayan tüm API'ler sıralanacaktır

Soft-ICE'ın kurulmasına rağmen etkili bir şekilde kullanmayı öğrenmek, zaman ve uygulama gerektirir Soft-ICE'a geçmek için daha önce de söylendiği üzere, Ctrl+D tuşları kullanılır Bu tuşlara basılması bütün programları durdurarak Soft-ICE ekranına geçilmesini sağlar Softice'a geçildiğinde birkaç pencere ve değişik bilgiler görülür Alttaki pencere komutların yazıldığı input penceresidir Soft-ICE'ta kullanılan bazı komutların görevleri;

x = Soft-ICE'tan çıkar
bpx = Soft-ICE' a belli API kodlarında dur emri verir
bpm = Soft-ICE' a belli bellek bölgelerinde dur emri verir
bpr = Belli hafıza bölegelerinde dur emri verir
d = Belleği ve yazılı olan değerleri gösterir
e = Bellekteki değerleri değiştirir
cls = Input penceresini temizler
s 0 l ffffffff 'text' = Hafızada text yazısını arar


Bu komutlar, program içinde aşağıdaki şekilde kullanılır:

bpx getdlgitemtexta ;Soft-ICE' a bu API kodunu görünce dur komutunu verir
bpm 0157:0009AC2D ;Soft-ICE' a verilen bellek adresine erişildiğinde dur komutunu verir
bpr 0157:00643345 0157:00643345 ;İki adres arasında bir adrese erişildiği zaman dur komutunu verir
d 00456787 ; Verilen bellek adresinde tutulan değerleri gösterir
d eax ; eax register(kaydedici) ının belirttiği yerdeki belleği gösterir

Input penceresinde kullanılan komutların görevleri de aşağıda verilmiştir:

bl = O andaki breakpointleri gösterir ((00) BPX #0028:09876543 C=01 gibi)
bc = O anda konulmuş breakpoint'leri temizler (bc 1 bir nolu breakpointi siler)
bd = Breakpoint'i kapatır (bd 0 0 nolu breakpointi kapatır)
be = Breakpoint'i açar (be 0, kapatılan 0 nolu breakpointi açar)
? = Belli bir register veya sayının değerini gösterir ( ? 23 # gibi)

Soft-ICE’ın kullanımı için gerekli fonksiyon tuşlarının görevleri de aşağıdaki şekildedir:

F1 : Genel Help’i görüntüler "^H;"

F2 : Register penceresini getirir "^WR;"

F3 : Mevcut kod modunu değiştirir "^SRC;"

F4 : Ekranı yeniler "^RS;"

F5 : Programa dönüşü sağlar "^X;"

F6 : Kursörü komut ve kod pencereleri arasına konumlandırır "^EC;"

F7 : Kursörün bulunduğu satıra gider "^HERE;"

F8 : Satır satır çalıştırma "^T;"

F9 : Kursörün bulunduğu satıra durma noktası(breakpoint) koyar "^BPX;"

F10 : Program basamakları "^P;"

F11 : Dönüş adresine gider "^G @SS:SP;"

F12 : Soft-ICE’ın versiyon numarasını görüntüler "^VER;"

Soft-ICE' la program kırma tekniği, komutlar ve fonksiyon tuşları yardımıyla kodlar incelenerek kırılacak programın gerçek seri numarasının bulunmaya çalışılmasına dayanır

__________________
Arkadaşlar, efendiler ve ey millet, iyi biliniz ki, Türkiye Cumhuriyeti şeyhler, dervişler, müritler, meczuplar memleketi olamaz En doğru, en hakiki tarikat, medeniyet tarikatıdır
Alıntı Yaparak Cevapla