![]() |
Crack Nasıl Yapılır ? - Part-IV |
![]() |
![]() |
#1 |
RaHaTSiZ
|
![]() Crack Nasıl Yapılır ? - Part-IVGünümüzde bir çok program ‘registration (kayıt olma)’ bug ına sahiptir ![]() ![]() ![]() ![]() Bir çok Reverse Engineer ( exe kodu değiştiren kişi-cracker ) tarafından tercih edilen debugger olması ve örnek program kırılımında da kullanılması sebebiyle burada Soft-ICE debugger’ından bahsedilmektedir: 5 ![]() ![]() ![]() Soft-ICE, düşük seviyeli (hardware-level) bir yazılım debug etme programıdır ![]() Yüksek seviyeli (software-level) debugger ların gerçekleştiremediği ya da çok yavaş gerçekleştirdiği debug mekanizmalarına (düşük seviyeli breakpointler koyma, memory protection, kilitlenen programlardan çıkma vb ![]() ![]() Güçlü bir hata kontrolü sağamak için yeni bir debugger kullanımını öğrenmek gerekmez ![]() ![]() Kullanımı kolay bir ekrana sahiptir ![]() ![]() ![]() ![]() ------------------------------------ 5 ![]() ![]() ![]() ![]() Soft-ICE programının sağladığı özellikler de şu şekildedir [13]: • Hafıza okuma/yazma, port okuma/yazma, hafıza düzenlemeleri ve interruptlar esnasında gerçek zamanlı durma noktaları (breakpoint), • Sembolik ve kaynak seviyeli debugging, • Eski debugger larla çalışabilme özelliği, • I/O portlarının ayarlanması, hafızada adres çakışması gibi sorunlar çıkarmadan kurulabilme imkanı, • Kullanıcıya öğrenim kolaylığı sağlayan dinamik bir Help, • DOS harici işletim sistemleri ve kendisini boot edebilen programlarda hata ayıklamaya izin veren soft boot (yeniden başlatma) imkanı, • Diğer programlara ihtiyaç duymadan(stand-alone) kullanılabilme imkanı sağlar ![]() 5 ![]() ![]() ![]() ![]() Soft-ICE’ın kurulumu esnasında ilk ekran ve register ekranı geçildikten sonra, debugger’ın kurulacağı dizinin belirlenmesini isteyen bir ekran gelecektir ![]() ![]() ![]() ![]() ![]() Soft-ICE kurulduktan sonra autoexec ![]() C:Progra~1NuMegaSoftIc~1winice ![]() Burada, kurulan klasör veya sürücü farklı olabilir fakat Soft-ICE’ın mutlaka Windows’tan önce başlaması gerektiğinden, bu satırın winice ![]() ![]() ![]() ![]() Eğer Softice 'ı kullanım amacımıza uygun şekilde ayarlamak için winice ![]() ![]() ![]() ![]() ![]() PENTIUM=ON ;Eğer bilgisayarınız pentium ise bunu On yapın aksi halde Off 'u Winice ![]() NMI=ON ; Eğer bilgisayar pentium ise On, aksi halde Off olmalıdır ![]() ECHOKEYS=OFF NOLEDS=OFF NOPAGE=OFF SIWVIDRANGE=ON THREADP=ON LOWERCASE=OFF WDMEXPORTS=OFF MONITOR=0 PHYSMB=64 ;Buradaki değer bilgisayardaki gerçek RAM boyutunu gösterecek şekilde ayarlanır ![]() SYM=1024 ;Kaynak kodundaki sembolleri saklamak için 1Mb lık yer ayırır ![]() HST=256 ;Geçmiş komutları saklamak için 256 K yer ayırır ![]() TRA=8 MACROS=32 DRAWSIZE=2048 ;Bundan sonraki yerler tavsiye edilen ayarlardır ![]() ;Mevcut sisteme uygun şekilde değiştirilebilir ![]() X; = Softice'tan çık ![]() ![]() wl; = Sofice'ta lokal değişkenler penceresini açıp kapatır ![]() code on; = Dissamble edilmiş kodun hexadecimal değerini gösterir ![]() altscr off; = Softice'ın herşey için aynı ekranı kullanmasını sağlar ![]() Lines 57; = Pencerenin boyutunu ayarlar ![]() wc; = Softice kod penceresinin boyutunu belirtir ![]() wd; = Softice hexadecimal penceresinin boyutunu belirtir ![]() wr; = Register(kaydedici) ları pencerenin tepesinde gösterir ![]() faults off; = Windows'un çökmesi halinde Softice'ın çalışmasını engeller ![]() INIT="X;" INIT="wl;code on; altscr off; lines 57; wc 32; wd 8; wr; faults off;" F1="h;" ;Bu ayarlar fonksiyon tuşlarını tanımlar ![]() F2="^wr;" F3="^src;" F4="^rs;" F5="^x;" F6="^ec;" F7="^here;" F8="^t;" F9="^bpx;" F10="^p;" ; F10 (Kod içinde adım adım dolaşma) kırarken çok kullanılır ![]() F11="^G @SS:ESP;" ;F11 Call (çağrı) dan program rutinine dönülmesini sağlar ![]() F12="^p ret;" SF3="^format;" CF8="^XT;" CF9="TRACE OFF;" CF10="^XP;" CF11="SHOW B;" CF12="TRACE B;" AF1="^wr;" AF2="^wd;" AF3="^wc;" AF4="^ww;" AF5="CLS;" AF8="^XT R;" AF11="^dd dataaddr->0;" AF12="^dd dataaddr->4;" CF1="code on; altscr off; lines 57; wc 32; wd 8; wr; wl; ww 2; faults off" CF2="^wr;^wd;^wc;" ; WINICE ![]() ; (SIW95WINICE ![]() ; for use with SoftICE Version 3 ![]() ; 14 July 1997 ; Path, Soft-Ice'ın kurulduğu mevcut dizin ve dosya ile değiştirilmelidir ![]() EXP=c:windowssystemkernel32 ![]() EXP=c:windowssystemuser32 ![]() ![]() EXP=c:windowssystemgdi32 ![]() EXP=c:windowssystemcomdlg32 ![]() ![]() EXP=c:windowssystemshell32 ![]() ![]() ![]() ![]() Winice ![]() ![]() ![]() ![]() Soft-ICE'ın kullanımında yaygın bir sıkıntı da, debugger'ın istenilen şekilde başlatılması için autoexec ![]() ![]() ![]() ![]() ![]() ![]() ![]() Bu satırlar autoexec ![]() ![]() ![]() ![]() Autoexec ![]() Rem -----Buradan itibaren kopyalanır------- goto %config% REM Soft-ICE'ı başlat - softice in kurulu oldugu yere dikkat edilmelidir ![]() :SICE C:PROGRA~1NUMEGASOFTIC~1WINICE ![]() REM Soft-ICE olmadan baslat :NORM Rem ----Buradan kesilir------ Config ![]() ![]() 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----- 5 ![]() ![]() ![]() ![]() Kurulum tamamlandıktan ve gerekli düzenlemeler gerçekleştirildikten sonra, programın debug edilmesine geçilir ![]() ![]() ![]() ![]() ![]() ![]() Bazı durumlarda, bpx getwindowtexta breakpointi konduğunda hata mesajı alınabilir ![]() ![]() Soft-ICE programı ilk kurulduğunda, 1 ![]() ![]() ![]() ![]() 2 ![]() ![]() ![]() ![]() ![]() ![]() Soft-ICE'ın kurulmasına rağmen etkili bir şekilde kullanmayı öğrenmek, zaman ve uygulama gerektirir ![]() ![]() ![]() ![]() ![]() 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 ![]() bc = O anda konulmuş breakpoint'leri temizler ![]() ![]() bd = Breakpoint'i kapatır ![]() be = Breakpoint'i açar ![]() ? = Belli bir register veya sayının değerini gösterir ![]() 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 ![]() 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 ![]() SONUÇ Bir programın kanunlar dahilinde ve tam versiyon olarak kullanılabilmesi için satın alınması gerekir ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Program kırabilmek için programcılıktan ve Assembly dili komutlarından biraz anlamak gerekir ![]() ![]() ![]() Program kırmaktaki tek amaç, programa bedavadan sahip olmak olmamalıdır ![]() ![]() ![]() C:Progra~1NuMegaSoftIc~1winice ![]() Burada, kurulan klasör veya sürücü farklı olabilir fakat Soft-ICE’ın mutlaka Windows tan önce başlaması gerektiğinden, bu satırın winice ![]() ![]() ![]() Soft-ICE kurulduktan sonra autoexec ![]() C:Progra~1NuMegaSoftIc~1winice ![]() Burada, kurulan klasör veya sürücü farklı olabilir fakat Soft-ICE’ın mutlaka Windows tan önce başlaması gerektiğinden, bu satırın winice ![]() Soft-ICE kurulduktan sonra autoexec ![]() C:Progra~1NuMegaSoftIc~1winice ![]() Burada, kurulan klasör veya sürücü farklı olabilir fakat Soft-ICE’ın mutlaka Windows tan önce başlaması gerektiğinden, bu satırın winice ![]() ![]() |
![]() |
![]() |
|