Crack Nasıl Yaplırı ? - Part-III |
11-28-2007 | #1 |
RaHaTSiZ
|
Crack Nasıl Yaplırı ? - Part-III433 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 [7] 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 [7] 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 [7] 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 [7] 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 [7] 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 [8] 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 [4] Burada disassembler örneği olarak W32Dasm tanıtılacaktır: 511 W32Dasm W32Dasm disassembler’ı [hide]http://www/expagecom/page/w32dasm[/hide] 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 [9] 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 Açılan pencereden AudioWriterexe tıklanarak disassemble edilecek program seçilmiş olur 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 Şekil 54 Kodların incelenmesinde status bar ve izleme bandının kullanımı 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) [10] 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: [Editing: C:UTILHEHEEXE]ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍ[HexEdit 21] Found: 127/290 Changes : 4297 Mask:Off Mode:C Page:1 Current Sector: 39(00000027) Byte: 20360(00004F88) Total Sectors : 127(0000007F) Bytes: 65503(0000FFDF) ÍÍÍÍ00Í01Í02Í03Í04Í05Í06Í07Í08Í09Í0A Í0BÍ0CÍ0DÍ0EÍ0 FÍÍÍÍÍÍ0123456789ABCDEFÍÍÍÍ 00- 74 69 6F 6E 20 6F 66 20-48 45 58 45 44 49 54 2E -00- tion of HEXEDIT -00 01- 54 58 54 20 66 6F 72 20-6D 6F 72 65 20 69 6E 66 -01- TXT for more inf -01 02- 6F 72 6D 61 74 69 6F 6E-2E 36 54 68 65 72 65 20 -02- ormation6There -02 03- 69 73 20 6E 6F 20 64 69-66 66 65 72 65 6E 63 65 -03- is no difference -03 04- 20 62 65 74 77 65 65 6E-20 74 68 65 20 72 65 67 -04- between the reg -04 05- 69 73 74 65 72 65 64 20-61 6E 64 20 6E 6F 6E 2D -05- istered and non- -05 06- 33 72 65 67 69 73 74 65-72 65 64 20 76 65 72 73 -06- 3registered vers -06 07- 69 6F 6E 73 20 28 74 68-69 73 20 69 73 20 4E 4F -07- ions (this is NO -07 08- 54 20 43 72 69 70 70 6C-65 77 61 72 65 21 21 21 -08- T Crippleware!!! -08 09- 21 21 29 2E 0F 20 20 20-20 4D 69 6B 65 20 47 72 -09- !!) Mike Gr -09 0A- 61 68 61 6D 0D 20 20 20-20 42 6F 78 20 36 30 30 -0A- aham Box 600 -0A 0B- 33 36 18 20 20 20 20 55-20 6F 66 20 41 20 50 6F -0B- 36 U of A Po -0B 0C- 73 74 61 6C 20 4F 75 74-6C 65 74 10 20 20 20 20 -0C- stal Outlet -0C 0D- 45 64 6D 6F 6E 74 6F 6E-2C 20 41 42 13 20 20 20 -0D- Edmonton, AB -0D 0E- 20 43 61 6E 61 64 61 20-20 54 36 47 20 32 53 34 -0E- Canada T6G 2S4 -0E 0F- 3C 20 6F 72 20 63 6F 6E-74 61 63 74 20 22 6D 69 -0F- < or contact "mi -0F ÍÍÍÍ00Í01Í02Í03Í04Í05Í06Í07Í08Í09Í0A Í0BÍ0CÍ0DÍ0EÍ0 FÍÍÍÍÍÍ0123456789ABCDEFÍÍÍÍ F1:Help F2/SF2:Jump F3:Search F4:Srch/Rep F8:Mask F9:Mode ESC:Exit Alt keys: A:Ascii B:Base C:Config S:Shell X:Abort! T:Text U:Undo Şekil55 HexEdit programının ekran çıktısı 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 [10] 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 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 [11] 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[12] /*Code*/ () loop change_a_variable; show_value_of_variable; end_loop () dewamı diger bölümde |
Cevap : Crack Nasıl Yaplırı ? - Part-III |
03-28-2008 | #2 |
erkanv
|
Cevap : Crack Nasıl Yaplırı ? - Part-III:notworthy: |
Cevap : Crack Nasıl Yaplırı ? - Part-III |
03-28-2008 | #3 |
erkanv
|
Cevap : Crack Nasıl Yaplırı ? - Part-IIIteşekür |
Cevap : Crack Nasıl Yaplırı ? - Part-III |
03-28-2008 | #4 |
erkanv
|
Cevap : Crack Nasıl Yaplırı ? - Part-IIICevap : Crack Nasıl Yaplırı ? - Part-III |
Cevap : Crack Nasıl Yaplırı ? - Part-III |
03-28-2008 | #5 |
erkanv
|
Cevap : Crack Nasıl Yaplırı ? - Part-III |
|