Geri Git   ForumSinsi - 2006 Yılından Beri > Bilgisayar,Teknoloji & İnternet Dünyası > Program Anlatımları [Resim & Video]

Yeni Konu Gönder Yanıtla
 
Konu Araçları
amaçlı, eğitim, incelenmesi, kırma, program, yöntemlerinin

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

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

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



3137 Tarihi ileriye alıp tüm işlemlerin tekrarlanması

Şimdi yapılması gereken 2 bir call flow logu hazırlamaktır, ancak bu sefer sistemin tarihi ileriye alınmalıdır ki, "Deneme Süreniz Sona Erdi" mesajı görülebilsin Bu, programımızın 'GetSystemTime' fonksiyonundan sonra fakat Nag ekranı çıkmadan önce farklı bir yol izlemesine neden olacaktır

3138 İki Log dosyasının karşılaştırılması

Tüm adımlar tekrarlandıktan ve 2 log dosyası (örn:asa2txt) kaydedildikten sonra iki log dosyasını karşılaştırmak gerekir Burada iyi korunulduğu söylenen bir Microsoft programını kullanarak ortaya çıkan 2 tane örnek log dosyası üzerinde açıklama yapılacaktır

3139 İki log dosyasının farklılaştığı ilk noktanın bulunması


Dikkat edilirse her iki log dosyası da 015F:3000ADC1 adresine kadar aynıdır İlk dosyada, bu adresteki komut atlama yapmıyor, fakat ikinci dosyada aynı komut atlamayı yaptırıyor Bu, o noktadaki EAX in değerinin sistem zamanına bağlı olarak aldığı değişiklikten kaynaklanıyor Aşağıdaki kod satırları incelenmelidir:

LEA EAX,[ESI-01] Bu komut, ESI-01’deki byte’a bakıp değeri EAX’e koyuyor
CMP EAX,05 Bu komut, EAX’teki değerin 5’e eşit olup olmadığına bakıyor
JA 3000AE00 Eğer değer 5'ten büyükse 300AE00 adresine atla komutu


31310 Dosyada değişiklikler yapılması

JA komutunun atlama yapmaması için dosya değiştirilmelidir Bu bir çok yolla yapılabilir:
Basit ve ucuz olan yol; 015F:3000ADC1 adresindeki `77 3D` değerlerini `90 90` olarak değiştirerek "JA 3000AE00" komutunu nop lamaktır (No Operation) Bu yol çoğu zaman işe yarasa da, doğru yol 3 byte uzunluğunda olan 'LEA EAX,[ESI-01]', yine 3 byte uzunluğunda olan 'CMP EAX,05' ve 2 byte uzunluğunda olan `JA` (3 asm kodu için toplam 8 byte etti) komutlarını; 5 byte uzunluğundaki 'MOV EAX,00000005' ve birer byte uzunluklarındaki 3 `NOP` komutuyla değiştirmek olacaktır Bu, EAX kaydının herzaman doğru değere sahip olmasını ve aynı sayıda byte'ın değiştirilmiş olmasınısağlayacaktır

31311 Programı yamalamak (Patching olayı)

Artık yapılması gereken, programı istenilen bir Hex editörüne yükleyerek log dosyasında LEA, CMP ve JA komutları için bulunan byte gurubunu arayıp yamamak olacaktır
Bu örnek için;
'8D46FF83F805773D' yi 'B805000000909090' ile değiştirir
B805000000 = MOV EAX,05
90 = NOP
"Call Flow Metodu" olarak anılan bu cracking yönteminin, 2 ayrı yol izlenen bir çok olayda da kullanılabilme imkanı vardır
Örnek :
- CRC rutinlerini kırmak için (Program modifiye edilmiş/edilmemiş) ;
- Dongle korumasının (Dongle plugged in/not plugged in) kaldırılması ;
- Üç deneme ve password soru alanının dışındasın (Sizin bir fonksiyonu sadece belli bir sayıda kullanabilmenizi sağlayan programlar) şeklindeki kısıtlamaların kaldırılması için kullanılı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

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

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

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



4 CD KORUMASININ KALDIRILMASI

Programlardaki koruma tiplerinden bir tanesi de, CD sürücüde CD olup olmadığını kontrol eden koruma tipleridir Bu koruma, genelde oyun programlarında kullanılır Program bilgisayara install edilmesine(yüklemesine) rağmen, her kullanımda CD ister Bu tür korumaları kaldırılmasının aşamaları, örnek bir program üzerinde gösterilmektedir:

41 Kırılacak Program


Hedef Program: Herhangi bir oyun programı

42 Kırılımı Gerçekleştirecek Program


Kırılımında Kullanılacak Araçlar: W32Dasm ve HIEW

43 Programın Kırılım Aşamaları

Programın kırılımı, yedi aşamada gerçekleşmiştir Bu aşamalar:

431 Programı CD’siz çalıştırarak hata mesajının alınması

Öncelikle, kırılacak oyun programı CD takılmadan çalıştırılır Bu durumda, oyun çalışmayıp, ekrana hata mesajı veren bir pencere çıkacaktır Programın kırılmasında bu hata mesajından faydalanılacaktır, bu nedenle hatırlanması gerekmektedir

432 W32Dasm programında kırılacak programın çağrılması

Daha sonra, W32Dasm disassembler’ı çalıştırılır Disassembler ekranı açıldığında, Toolbar üzerinde sol tarafta bulunan ilk küçük butona basılır ya da menülerden - Open File to Disassemble – bölümüne gelinir Açılan menüde kırılmak istenen exe program seçilir Disassemble işlemi yaklaşık 5 dakika sürecektir Bu işlem tamamlandığında ekrana programın assembly kodu gelecektir

433 Assembly kodunun incelenmesi

Bu aşamada yapılacak işlem, String Data References butonuna tıklamaktır String Data Items adlı bir pencere açılır Kod aşağı doğru incelenerek oyunun hata mesajı bulunmaya çalışılır Bulunduğunda, üzerine çift tıklanır

434 W32Dasm textine dönülmesi

Sonra Win32Dasm textine dönmek için pencere kapatılır Görüldüğü gibi CD kontrol rutininde bulunulmaktadır Burası hata mesajının bulunduğu alandır

Alıntı Yaparak Cevapla

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

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

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



435 Call ve jump komutlarının ofsetlerinin alınması

Bu aşamada, kodda bulunan bütün call ve jump komutlarının offsetlerinin not alınması gerekir (OPBAR’ın mevcut renginin yeşile dönüştüğünden emin olunmalıdır) @offset’in yanındaki h uzantısız hexadecimal sayıya ihtiyaç vardır

436 Hiew programına geçilmesi

Daha sonra HIEW’e geçilir Bu program içinde aşağı yukarı hareket için kursor tuşları kullanılır HIEWexe çalıştırılır HIEW dizini içinde, exe dosya ve programların bir listesi bulunur

437 Hiew içinde kırılacak programın exe’sinde numaranın değiştirilmesi

Hiew dizini içindeki listeden kırılacak oyunun kaydedildiği dizine gelinerek oyunun exe’sine tıklanır F4’ e tıklanarak - Text, Hex ve Decode – menüsüne gelinir Bu menülerden Decode’a tıklanır Kodların offset adreslerinin bulunduğu bir liste gelir F5’ e basılarak Win32Dasm’da not alınan numara buraya yazılır Sayı yazıldığında bu numaranın bulunduğu satıra gelinir ve kursor komutun üzerine konumlanır Örneğin, ekrana E92BF9BF74 gibi 5 byte’lık bir sayı gelirse buraya F3’e bastıktan sonra 90-90-90-90-90 yazılır F10’ a basıp çıkıldığında oyunun CD koruması kaldırılmış olur

Alıntı Yaparak Cevapla

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

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

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



5 HİZMET PROGRAMLARININ TANITILMASI

Bir programın kırılması için, onun disassemble edilebilmiş koduna ihtiyaç vardır Bu iki şekilde sağlanır Birincisi, bir disassembler kullanarak programın deadlist(çalışır vaziyette olmayan bir exe'nin içeriği) denilen assembly kodu elde edilebilir İkinci bir yöntem ise, debugger kullanarak live(canlı, yani o anda çalışan ve cpu(işlemci)'de işlenen assembly kodu) olarak bu programın içeriğinin görüntülenmesidir Birinci yöntem daha uzun bir süre gerektirecektir, çünkü tüm exe analiz edilip içinde geçen tüm jump ve call komutları için referans açıklamaları oluşturmak gerekir Diğer yöntem ise daha kolaydır

Sadece o anda işlenen kodun birkaç satır öncesi ve sonrası dahil olmak üzere görüntülenir Yeni başlayanlar için disassembler kullanmak daha kolay ve cazip gelebilir, çünkü bu yöntemde assembly kodlarının yanında daha fazla açıklama vardır ve bir altyordamın nerelerden çağrıldığı ve hangi adres ya da değişkenleri kullandığı daha açık bir şekilde görülebilirProgram kırılımında zaman önemli görülüyorsa, debugger kullanmak daha uygundur Bunun sebebi, disassembler programının exe'yi disassemble etmek için harcadığı zamandan kurtulmuş olunması ve debugger'da breakpoint(durak noktası) konulmasının daha kolay olmasıdır Debugger kullanılarak daha dinamik breakpoint'ler konulabilir

Program kırmak için bazen diğer tool'larla birlikte Hex Editör'ler de kullanılır Hex Editör, programın exe'sini açarak yama yapılmasına ve kodun değiştirilmesine yardımcı olur

Burada Disassembler, Hex Editör ve Debugger kavramları, en çok kullanılan örnekleri üzerinde incelenmiştir:


51 Disassembler

Çalıştırılabilir(exe) programlar hafızada, makine dilinde bulunurlar , bu kodların anlaşılabilmesi için, ASSEMBLY kodlarına çevrilmesi gerekir Bu iş için kullanılan programlara disassembler denir

Burada disassembler örneği olarak W32Dasm tanıtılacaktır:

511 W32Dasm


W32Dasm disassembler’ı http://www/expagecom/page/w32dasm adresinden temin edilebilir Kurulumu kolaydır Kurulum tamamlandıktan sonra, W32Dasm ile bir program disassemble edileceğinde, öncelikle W32Dasm programı çalıştırılır Disassembler editörü gelir ve disassembler menüsü yardımıyla dosya saklandığı yerden çağrılarak işleme başlanır

5111 Özellikleri

· W32Dasm Windows NT 40 ile çalıştırılabilir

· W32Dasm Intel MMX komut setini disassemble edebilmektedir

· 32 bit debugger’ın, kod yamalama fonksiyonu(komut assembler’ı) vardır

· CPU kaydedicilerinin ve bayrakların değişiklik göstergeci mevcuttur

· Referans adresine sağ tuşla çift tıklandığında bütün Call ve Jump Cross Reference adreslerine dallanabilir Referansa dönmek için F12 kullanılır

Alıntı Yaparak Cevapla

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

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

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



5112 Bir programın disassemble edilmesi

W32Dasm editörü Şekil 51’de görüldüğü gibidir Disassemble edilecek program, Disassembler menüsünden “Open File to Disassemble” penceresinden seçilir Burada örnek olarak AudioWriter programının disassemble edilişi gösterilecektir

Şekil 51 W32Dasm Editöründe disassembler menüsü


Açılan pencereden AudioWriterexe tıklanarak disassemble edilecek program seçilmiş olur

Dosya seçilip, Aç tuşuna basıldığında W32Dasm, exe kodu assembly kodlarına çevirmeye başlar Bu işlem 5 dakika kadar kendi kendine yürütüldükten sonra kodları gösteren bir ekran gelir Bu ekran Şekil 53'te gösterilmektedir

W32Dasm ile şifre kırma tekniği, programın açılışında girilen yanlış koda karşı verdiği hata mesajına dayanır Bu mesaj not edilerek, kod içinde bulunmaya çalışılır Kodlar yön tuşları yardımıyla aşağıya doğru incelenebilir Wdasm programında kodlar incelenirken, ekranın en altında bulunan status bar'da o an üzerinde bulunulan satırın ofset adresi yer alır Programın kırılımında, jump komutları(jnb, jl, jns, jbe, jo, jmp, jne, jb gibi) şifreyi bulma konusunda yardımcı olan noktalardır Bu komutların adresleri üzerine gelindiğinde, diğer kodlarda Şekil 53'te görülen izleme bandı maviyken yeşile dönmektedir Şekil 54'te kodların üzerine gelindiğinde status bar'da meydana gelen değişiklik gösterilmiştir

Disassembler içinde kodlar incelenerek hata mesajının olduğu yer bulunur Bu mesajın öncesinde çok yakın bir yerde girilen numara ile gerçek seri numarasının karşılaştırılıp dallanıldığı bölüm vardır Jump(dallanma) komutlarını ve çağrıları(call) çok dikkatli incelemek gerekir Jump komutu değiştirilerek programın seri numara hata vermesi engellenmiş olur

52 Hex Editör

Hex Editör Programı, programcının heksadesimal yama (patch) editörüdür Diğer bir deyişle, NotePad gibi Text Editörler’den farklı olarak temiz textler yerine formatsız ikili(binary) dosyalarla çalışan özel editörlerdir [4]

Hex Editör programına örnek olarak, HexEdit tanıtılacaktır:

521 HexEdit

HexEdit programını kullanabilmek için gerekli olan tek dosya, HEEXE çalıştırılabilir dosyasıdır Bu dosya path’te bulunduğunda sorun yoktur On-line yardım alabilmek için HEXEDITHLP dosyası da HEEXE ile aynı dizine kopyalanmalıdır Otomatik yedek(backup) ler alabilmek için HEBBAT ve MAKEBAKEXE dosyaları path’te bulunmalıdır (HEEXE ile aynı dizinde olmak zorunda değildir)

Alıntı Yaparak Cevapla

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

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

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



5211 Özellikleri

· Birlikte çalışacağı dosyalarda büyüklük sınırlaması yoktur

· Dosya üzerinde yapılan bütün değişiklikleri kaydeder İstenildiği kadar geri alma(UNDO) imkanı sağlar

· Güçlü bir makinada, dosyaları tarama hızı, 10 sn/MB oranındadır

· Hızlı ve esnek bir ‘Bul/ Bul ve Değiştir’ özelliği vardır Büyük-küçük harf duyarlılığıyla ya da olmadan bulma ve değiştirme imkanı sağlar

· Dosyanın her byte(F2) ve sektörüne(SF2) sıradan erişimli atlama(jump) imkanı sağlar

· Karakter stringleri ve heksadesimal serilerde arama yapar

· 15000 tarama eşlemesine kadar saklama imkanı vardır

· Desimal, heksadesimal ve ikili(binary) sistemler arası dönüşüm yapabilir

· Tanınmayan karakterler için ASCII tablosu getirebilir (Alt-A)

· İkili dosyalarda sıradan erişimli stringler için tarama yapabilir (Alt-T)

5212 Ekran görüntüsü


HexEdit çalıştırıldığında, yama yapılmak istenen dosya belirlenerek, okunacak ve aşağıdaki ekran görüntüsü oluşacaktır:

Ekran görüntüsünün en başında, yamalanacak dosyanın adı (burada HEEXE) ve HexEdit’in versiyonu belirtilmektedir Bir aşağı satırda bulunan ‘Found: 127/290’ ifadesi, daha önceki taramanın 290 bulguyla sonuçlandığı ve burada 127 bulguya atlanmış olduğunu ifade eder Aynı satırdaki ‘Changes : 4297’ ifadesi de dosya üzerinde 4297 değişiklik yapıldığını gösterir Burada Undo yapılarak orjinal dosyaya ulaşmak mümkündür ‘Mask:Off’, text filtrelemesini ifade ederken , ‘Mode:C’ karakter düzenleme modunda olunduğunu göstermektedir

5213 Fonksiyon tuşları ve kısayollar

HexEdit programında kullanılan fonksiyon tuşları ve kısayollar aşağıdaki gibidir:

F1: Help

F2: İstenen byte’a atlama

Shift-F2: İstenen sektöre atlama

F3: Arama


F4: Bul ve Değiştir

F8: Text olmayan byte’ları maskele

F9: Modu belirle

Alt-A: ASCII Tablosu

Alt-B: Taban dönüşümü

Alt-C: Konfigürasyon

Alt-N: Sonraki bulgu

Alt-P: Önceki bulgu

Alt-S: DOS’a geçiş

Alt-T: Text taraması

Alt-U: Undo(geri alma)

Alt-X: Panic Abort (programdan hiç bir değişiklik kaydedilmeden hızlı çıkış)

Esc: Exit

Backspace: Kaydedilmemiş değişiklikleri geri al

Alıntı Yaparak Cevapla

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

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

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



53 Debugger (Hata ayıklayıcı)

Debugger bir hata ayıklama programı olup, kullanıcılara programların analiz edilmesinde, bazı kritik noktalarda durma noktaları (breakpoint) koyma ve programın çalışması sırasında istenen noktadaki kaydedici ve bellek durumlarının incelenmesini sağlarlar Eğer program bir hata bulursa, bazı debugger programları kullanıcıya bu noktada hataları düzeltme ve programın çalıştırılmasına izin verirler Bu özellik kaydedicilerin kapsamlarının incelenmesi ve değiştirilmesini sağlar Bu işlemler debugger tarafından mikroişlemcideki komutların icrasıyla veya bir simulatör kontrolü veya bir emülatör altında icra edilmesiyle yapılır
Debuggerlar geliştirilmeden önce, program kodu içinde değişkenlerin değerini araştırmak ve hata bulmak için programcıların aşağıdaki gibi kod parçaları kullanmaları gerekmiştir

/*Code*/
()
loop
change_a_variable;
show_value_of_variable;
end_loop
()
Günümüzde bir çok program ‘registration (kayıt olma)’ bug ına sahiptir Bu bug, program çalıştırıldığında geçerli bir kod girilmesini isteyen bir ekran şeklinde belirecektir Doğru kod girilmediğinde program çalışmayacaktır Bu durumda, debugger’lar Code Reversing ( Kod değiştirme) işlemi için kullanılmaktadır [12]
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:

531 Soft-ICE

Soft-ICE, düşük seviyeli (hardware-level) bir yazılım debug etme programıdır Soft-ICE’ın geliştirilme sebepleri şunlardır [13]:
  • 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) 80386 sanal makine özelliği sağlar
  • Güçlü bir hata kontrolü sağamak için yeni bir debugger kullanımını öğrenmek gerekmez Soft-ICE eski debugger larla çalışabilme imkanı verir
  • Kullanımı kolay bir ekrana sahiptir Ekranı öncelikle diğer debugger larla beraber çalışılabilecek şekilde küçük olarak gelir Tek başına çalıştırılmak istendiğinde ekran büyütülebilir Her iki durumda da komutlar ekrana sığabilecek şekilde düzenlenmiştir
5311 Özellikleri

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

Alıntı Yaparak Cevapla

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

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

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



5312 Kurulumu ve gerekli ayarlamaların yapılması


Soft-ICE kurulduktan sonra autoexecbat dosyasında şöyle bir satırın olması gerekmektedir:
C:\Progra~1\NuMega\SoftIc~1\winiceexe

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 winiceexe dosyasını göstermesi gerekmektedir Eğer satır yoksa, autoexecbat dosyasına eklenmelidir


Eğer Softice 'ı kullanım amacımıza uygun şekilde ayarlamak için winicedat dosyasının değiştirilmesi gerekmektedir Bu dosya Softice' ın kurulduğu dizindedir Bu dosya herhangi bir text editörü ile açılıp, değiştirilebilir Dosyanın değiştirilmiş hali aşağıda verilmiştir
PENTIUM=ON ;Eğer bilgisayarınız pentium ise bunu On yapın aksi halde Off 'u
Winicedat dosyası

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 Noktalı virgül enter'a basılması gerektiğini belirtiyor
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;"

; WINICEDAT
; (SIW95\WINICEDAT)
; for use with SoftICE Version 32 (Windows 95)
; 14 July 1997
; Path, Soft-Ice'ın kurulduğu mevcut dizin ve dosya ile değiştirilmelidir

EXP=c:\windows\system\kernel32dll ;Buradaki satırlar Soft-ICE 'ın otomatik olarak
EXP=c:\windows\system\user32dll ;yükleyeceği dll'leri gösterir Hangi
EXP=c:\windows\system\gdi32dll ;rutinlerin program tarafından kullanıldığını
EXP=c:\windows\system\comdlg32dll ;bildirirGenelde bir çok program bu dll'leri
EXP=c:\windows\system\shell32dll ; kullanır Bu yüzden bu dll'lerin Softice EXP=c:\windows\system\shell232dll ; tarafından yüklenmesi gerekmektedir
Winicedat 'a yapılan her değişikliğin etkili olabilmesi için Windows'un yeniden başlatılması gerekir Mevcut Winicedat dosyasında bu değişiklikler gerçekleştirilerek Soft-ICE'ın kullanım amacına uygun şekilde çalışması sağlanmış olur

Alıntı Yaparak Cevapla

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

Alıntı Yaparak Cevapla

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

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

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



SONUÇ

Bir programın kanunlar dahilinde ve tam versiyon olarak kullanılabilmesi için satın alınması gerekir Günümüzde Internet'te ya da bilgisayar dergileri tarafından verilen CD'lerde shareware veya freeware programlara erişmek mümkündür Bunlar üretici firmaların programları tanıtmak ve alınmasını sağlamak için başvurdukları bir yöntemdir Shareware programlar, belli bir süre sonunda ya belirli bir miktar ücret ödeyip bu yazılımın satın alınmasını ya da kullanıcının bilgisayarından silinmesini talep etmektedirler Bunun yanında freeware programlar için para ödenmesi gerekmemektedir

Artık bilgisayar programlarının maddi açıdan alınmasının zorlaşması, her yeni çıkan programı almanın imkansız olması nedeniyle shareware programların da koruma kodları kaldırılarak para ödenmeden kullanımı sağlanabilmektedir Günümüzde piyasaya yeni çıkan programların birkaç gün içerisinde kırılıp, crack patch’inin internete konulduğu görülmektedir Fakat bu işlem, devletler hukukları altında korunan programcının hakları ve telif ücretleri açısından illegal bir durumdur

Program kırabilmek için programcılıktan ve Assembly dili komutlarından biraz anlamak gerekir Ayrıca program kırılımı sırasında kullanılan Disassembler, Hex Editör ve Debugger gibi programların kullanımını öğrenmek gerekmektedir Bu tezde, kırılıma yardımcı programların tanıtımı yapılmış, ayrıca programlardan şifre, fonksiyon, zaman ve CD korumalarının kaldırılma aşamaları gösterilmiştir

Program kırmaktaki tek amaç, programa bedavadan sahip olmak olmamalıdır Çünkü, program mutlaka daha önce başka biri tarafından kırılmıştır ve crack'ini ya da full versiyonunu internetten bulmak mümkündür Asıl amaç, kullanılan programların bizden habersiz neler yaptıklarını bilmek ve herşeyin kontrolümüz altında olmasını sağlamak olmalıdır

Hilal AKARKAMÇI

Gazi Üniv Tek EğtFktElktBilEğtBölBilSisAna Bilim dalı

Alıntı Yaparak Cevapla
 
Üye olmanıza kesinlikle gerek yok !

Konuya yorum yazmak için sadece buraya tıklayınız.

Bu sitede 1 günde 10.000 kişiye sesinizi duyurma fırsatınız var.

IP adresleri kayıt altında tutulmaktadır. Aşağılama, hakaret, küfür vb. kötü içerikli mesaj yazan şahıslar IP adreslerinden tespit edilerek haklarında suç duyurusunda bulunulabilir.

« Önceki Konu   |   Sonraki Konu »


forumsinsi.com
Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ForumSinsi.com hakkında yapılacak tüm şikayetlerde ilgili adresimizle iletişime geçilmesi halinde kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde gereken işlemler yapılacaktır. İletişime geçmek için buraya tıklayınız.