ForumSinsi - 2006 Yılından Beri

ForumSinsi - 2006 Yılından Beri (http://forumsinsi.com/index.php)
-   Yazılım & Donanım (http://forumsinsi.com/forumdisplay.php?f=247)
-   -   Crack Nasıl Yaplırı ? - Part-III (http://forumsinsi.com/showthread.php?t=32245)

RaHaTSiZ 11-28-2007 01:55 PM

Crack Nasıl Yaplırı ? - Part-III
 
4.3.3. 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].

4.3.4. 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].

4.3.5. 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].

4.3.6. 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. HIEW.exe çalıştırılır. HIEW dizini içinde, exe dosya ve programların bir listesi bulunur [7].

4.3.7. 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ülebilir.Program 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:

5.1. 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:



5.1.1. W32Dasm

W32Dasm disassembler’ı [hide]http://www/expage.com/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.

5.1.1.1. Özellikleri



• W32Dasm Windows NT 4.0 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].

5.1.1.2. Bir programın disassemble edilmesi




W32Dasm editörü Şekil 5.1.’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 AudioWriter.exe 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 5.3.'te görülen izleme bandı maviyken yeşile dönmektedir. Şekil 5.4.'te kodların üzerine gelindiğinde status bar'da meydana gelen değişiklik gösterilmiştir.


Şekil 5.4. 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.

5.2. 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:





5.2.1. HexEdit

HexEdit programını kullanabilmek için gerekli olan tek dosya, HE.EXE çalıştırılabilir dosyasıdır. Bu dosya path’te bulunduğunda sorun yoktur. On-line yardım alabilmek için HEXEDIT.HLP dosyası da HE.EXE ile aynı dizine kopyalanmalıdır. Otomatik yedek(backup) ler alabilmek için HEB.BAT ve MAKEBAK.EXE dosyaları path’te bulunmalıdır (HE.EXE ile aynı dizinde olmak zorunda değildir) [10].

5.2.1.1. Ö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).

5.2.1.2. 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:UTILHEHE.EXE]ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍ[HexEdit 2.1]

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- ormation.6There -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

Şekil.5.5. HexEdit programının ekran çıktısı

Ekran görüntüsünün en başında, yamalanacak dosyanın adı (burada HE.EXE) 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].

5.2.1.3. 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

5.3. 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...

erkanv 03-28-2008 12:01 AM

Cevap : Crack Nasıl Yaplırı ? - Part-III
 
:notworthy:

erkanv 03-28-2008 12:02 AM

Cevap : Crack Nasıl Yaplırı ? - Part-III
 
teşekür

erkanv 03-28-2008 12:03 AM

Cevap : Crack Nasıl Yaplırı ? - Part-III
 
Cevap : Crack Nasıl Yaplırı ? - Part-III

erkanv 03-28-2008 12:05 AM

Cevap : Crack Nasıl Yaplırı ? - Part-III
 
:img-clapping:


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.