arkadaşlar crack aslında tahmin ettiğiniz kadar kolay değil bakalım yapabilen olacakmı yapan olursa seksen kere teşekkürü benden
Internet'ten indirilen ya da bilgisayar dergileri tarafından verilen çoğu programın belirli bir kullanım süresi bulunmaktadır. Bu programlar, içeriğine göre 1 hafta ila 1 ay arasında kısıtlı kullanım süreleri olan shareware veya limited software'lerdir. Yani paylaşım amaçlı yazılmış ve daha sonra paylaşılan 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 denilen, shareware programlara göre daha amatör coder'lar (yazılımcılar) tarafından hazırlanan ve kar amacı gütmeyen yazılım çeşitleri de mevcuttur ve bu programlar için para ödenmesi gerekmemektedir. Aslında shareware programlar için de para ödenmeyebilir ancak bu, devletler hukukları altında korunan progamcının haklarını ve telif ücretlerini gasp ederek yani illegal yollardan mümkün olmaktadır [1].
Program kırmak, cracker’lık, bilgisayar programlarındaki lisans haklarının aşırıya kaçması, BSA (Business Software Alliance)’nın aşırı baskılarıyla ve Microsoft’un tekelini daha fazla yaymasıyla ivme kazandı. 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. Program kırabilmek için programcılıktan biraz anlamak gerekir. Özellikle dongle adı verilen donanımla korunan programlar kırılmak isteniyorsa, Assembly dilini mutlaka bilmek gerekmektedir [2].
Programlar için çeşitli koruma tipleri mevcuttur. Örneğin, CD sürücüde CD olup olmadığını kontrol eden koruma tipleri, password koruma tipleri ki eğer doğru password girilmemişse ya program register olmaz ya da çalışmaz. Son olarak da süreli programlar ki, özellikle dergilerin verdiği cd'lerdeki programlar bu şekildedir. Program, süresi dolduğunda (30 gün, 90 gün) çalışmaz. En kolay kırılan programlar, Windows altında çalışan ve register etmek istendiğinde bir pencere içerisinde hata mesajı veren programlardır. Çoğunlukla, programı register etmek için sizden bir user name ve password ister fakat program satın alınmamışsa, girilen bilgiler, "invalid registeration number" gibi ya da benzer hata mesajlarıyla geri dönecektir [3].
Bir programın kırılması, o programın yazılış amacı dışında davranmasına sebep olmak olarak yorumlanabilir. Programlar belli bir programlama dilinde yazıldıktan sonra derleyici denilen başka programlar ile çalıştırılabilir kod haline çevrilir. Bu çalıştırılabilir kod, CPU nun anlayacağı dilde ve işletim sisteminin özelliklerine bağlı olarak, makine dilinde Hexedecimal (onaltılık) bir düzende bulundurulur. Makine koduna çevrilmiş programlar, içerisinde programcının yazmış olduğu kodu içermezler. Bu durumda programın içeriğini, derlenmiş bir koddan açık ve net bir biçimde anlamak çok zordur. Makine dili denilen dil, aslında rakamsal bir dildir. Bu onaltılık sayı düzeninde bulunan kodlar, ikilik sayı sistemine (binary) dönüştürülerek CPU‘ya gönderilir. 0 ve 1 ler (bilgisayarın işleyişinde temel olan elektrik sinyali var (1) ve elektrik sinyali yok (0) ) CPU tarafından yorumlanarak işlenir. Makine dilininin bu şekilde zor ve anlaşılmaz oluşundan dolayı ASSEMBLY dili geliştirilmiştir. Assembly Dili, bilgisayar dilleri içerisinde en alt düzey programlama dilidir. Assembly ile yazılan programlar CPU’ya direkt olarak hitap eder . Fakat bu dil ile uzun programlar yazmak oldukça zordur. Bunun yerine, diğer diller ile yazılan programlarda o programlama dilinin yetersiz kaldığı ya da yavaş kaldığı noktalarda daha hızlı ve direkt erişim olanağına sahip bir dil olan ASSEMBLY dili ile prosedür veya fonksiyonlar yazılabilir. Günümüzde bu, sadece bazı aygıt sürücülerini yazarken ya da viruslerde kullanılmaktadır [4].
Windows için yazılan programlar da, çeşitli programlama dilleri ya da program geliştirme araçları ile yazılarak derlenir ve çalıştırılabilir kod haline dönüştürülür. Bu çalıştırılabilir kodun DOS programlarından en belirgin farkı, içerisinde kullandığı işletim sisteminin özel fonksiyonlarıdır. DOS işletim sisteminin INTERRUPT denilen bazı fonksiyonları vardır. Bu fonksiyonlar, Windows için yazılan programların içerisinde direkt olarak yer almazlar, bunun yerine Windows işletim sisteminin hali hazırda yazılmış fonksiyonları kullanılır [4].
Windows / System dizini altında bir çok DLL uzantılı dosya mevcuttur. Bu dosyalar, içerisinde programların çalışırken kullandığı birçok fonksiyon ya da tanım bulundururlar. Sözkonusu fonksiyonlar, programların kırılmasına yardımcı olacak noktalardır. Programlar makine dilinde bulunurlar , bu kodların anlaşılabilmesi için, ASSEMBLY kodlarına çevrilmesi gerekir. Bu iş için kullanılan programlara DISASSEMBLER denilir. Programların ham, yani onaltılık sayı düzenindeki içeriğinin görüntülenebilmesi için de, HEX EDITOR denilen programlar kullanılır. Bunların dışında, programların CPU daki işlenişi sırasındaki içeriğini görüntüleyebilen ve gerçekte programlardaki hataları ayıklamak için kullanılan DEBUGGER denilen programlar da kulanılmaktadır [4].
Bu durumda, program kırmak için gerekli olan bilgi ve dökümanlar şu şekilde sıralanabilir:
1-ASSEMBLY dilini bilmek,
2- Windows İşletim Sistemini iyi tanımak ve fonksiyonlarını bilmek,
3-Disassembler Programı,
4-Hex Editör Programı,
5-Debugger Programı.
Bu tool(doküman) lardan faydalanarak, programların Serial Number (Seri Numara) ları ya da password (şifre) leri kırılabilir; deneme sürümlerinin kısıtlanmış fonksiyonları genişletilebilir ve Time Trial’lı (Süreli Deneme ) programların da tarih kısıtlamaları kaldırılabilir.
Disassembler, Hex Editör ve Debugger kavrcyber-port.netve bu türdeki programların çalışmasına yabancı olanların, program kırılımına geçmeden önce 5. Bölüm'e göz atmaları tavsiye edilir.
Assembly kodlarına uzak olanların da, program kırımına geçmeden önce EK-B'ye bakmaları tavsiye edilir. Başlangıç için yeterli olabilecek notlar eklenmiştir.
1. BİR WINDOWS PROGRAMININ ŞİFRESİNİN KIRILMASI
Windows altında çalışan bir çok program, password korumalıdır. Çoğunlukla, programı register etmek için sizden bir user name ve password ister fakat program satın alınmamışsa ya da doğru password bilinmiyorsa, girilen bilgiler, "invalid registeration number" gibi ya da benzer hata mesajlarıyla geri döner. Bu tür programlar, kırılımı en kolay olan programlardır. Burada, Windows programlarının kırılımı örnek bir program üzerinde, aşamalar halinde gösterilmiştir:
1.1. Kırılacak Program
Hedef Program : HexWorkshop
Programın Bulunabileceği Adres : BreakPoint Software, Inc. - Home of the Hex Workshop Hex Editor
Program ilk açıldığında ekrana, bu programın 20 gün süreli bir demo versiyon olduğunu hatırlatan bir pencere gelecektir. Eğer bu versiyon yakın tarihte kurulmuşsa upgrade edilmesini öneren bir başka pencere daha görülecektir. Bunun haricinde, programın Demonstration Version diye bir menüsü olduğu görülür ve bu menüye tıklandığında ise Serial Number soran bir pencere ile karşılaşılır. Bu durumda, burada yapılması gereken doğru bir seri numarası ya da programa girilen seri numarasının doğru olduğunu zannetirecek bir yöntem bulmaktır [5].
1.2. Kırılımı Gerçekleştirecek Program
Kırarken Kullanılan Program : Wdasm89
Wdasm89 bir disassembler’dır. Disassembler ile program kırma tekniği, hata mesajından faydalanarak, kod içinde şifrenin bulunmasına dayanır [4].
1.3. Programın Kırılım Aşamaları
Programın kırılımı on aşamada gerçekleştirilmiştir. Bu aşamalar:
1.3.1. Programın disassemble edilmesi
Program disassemble edilerek crack işlemine başlanır. Programın disassemble işlemi bittikten sonra ise, kullandığı Windows fonksiyonlarının incelenmesi gerekir [5].
1.3.2. Sonuca götürecek en uygun fonksiyonun bulunması
Disassembler ekranında, Functions Menüsünden, Imports‘a bakılarak sonuca götürecek en uygun fonksiyon bulunur. HexWorkshop programının kırılımında, User32.getwindowtexta fonksiyonundan faydalanılacaktır [5].
1.3.3. Fonksiyonun bulunduğu yerlere breakpoint konulması
Program load edilip (yüklenip) user32.GetWindowTextA fonksiyonlarının kullanıldığı yerlere breakpoint (durak noktası) konulur [5].
1.3.4. Register menüsüne herhangi bir değer girilmesi
Daha sonra program çalıştırılarak Demonstration Version menüsü açılır ve buraya Serial Number olarak herhangi bir numara girilir. Burada seri numarası olarak 99999999 girildiği varsayılacaktır [5].
1.3.5. Wdasm progrcyber-port.netgirilmesi
Seri numarası girme işlemi sonucunda REGISTER tuşuna basıldığında Wdasm programının içine otomatik olarak girilecektir. Bu durum crack işleminde doğru yolda olunduğunu gösterir. Daha sonra F8 tuşu ile hatalı Serial Number girildiğine dair ekran çıkana kadar ilerlemeye devam edilir. Bu noktaya gelinceye kadar işlenen kodlar iyi takip edilmelidir çünkü en son işlenen Dallanma Komutunun (je , Jne , Jz , jnz , Ja , Jb gibi ) yeri oldukça önemlidir [5].
1.3.6. Hata ekranının bulunması
Hata ekranı çıktığında OK tuşuna basılarak işlem tekrarlanır ve her işlenen koşullu dallanma komutuna bir durak noktası konulur.
:0043178B E8E8DC0100 call 0044F478 ; Seri Numarası’nın ekrandan okunması
:00431790 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FFFFFEFC]
:00431796 83C164 add ecx, 00000064
:00431799 E8F21BFDFF call 00403390
:0043179E 50 push eax
:0043179F 8D45DC lea eax, dword ptr [ebp-24]
:004317A2 50 push eax
:004317A3 E8E8B90000 call 0043D190
:004317A8 83C408 add esp, 00000008
:004317AB 680C534800 push 0048530C
:004317B0 8D45DC lea eax, dword ptr [ebp-24]
:004317B3 50 push eax
:004317B4 E867CE0000 call 0043E620
:004317B9 83C408 add esp, 00000008
:004317BC 85C0 test eax, eax
:004317BE 0F8414000000 je 004317D8
:004317C4 8D45DC lea eax, dword ptr [ebp-24]
:004317C7 50 push eax
:004317C8 E893970000 call 0043AF60
:004317CD 83C404 add esp, 00000004
:004317D0 8945EC mov dword ptr [ebp-14], eax
:004317D3 E907000000 jmp 004317DF
:004317DF 837DEC00 cmp dword ptr [ebp-14], 00000000
:004317E3 0F8479000000 je 00431862 ;Seri Numarası yanlış ise dallanma olur
:004317E9 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FFFFFEFC]
:004317EF 83C164 add ecx, 00000064
:004317F2 E8991BFDFF call 00403390
:004317F7 50 push eax
Crack işlemine tabi tutulan HexWorkshop Programında, girilen numara doğru kabul edildikten sonra çalıştığı dizinde bir dosya oluşturulur. REG uzantılı olan bu dosya oluşturulduğunda ya da içerisinde belli bir imza olduğunda, girilen seri numarasının doğru olup olmadığı bir daha kontrol edilmez ve sonsuza dek Full Version olarak çalışır [5].
1.3.7. Kodun değiştirilmesi
Programın girilen herhangi bir kodu kabul etmesi için yapılması gereken işlem, Koşullu Dallanma ( Conditional Jump) komutunun durumunu değiştirmektir. Koddan da görüldüğü üzere, 004317E3 satırında seri numarasının 00431862’den farklı olması durumunda hata verecektir. Ancak JE 00431862 komutu JNE 00431862 komutuna ya da tamamı NOP komutuna çevrildiğinde, program girilecek herhangi bir kodu kabul edecektir ve Crack işlemi tamamlanmış olacaktır [5].
1.3.8. Kırılacak programın exe’sinde kodun değiştirilmesi
Wdasm programından aranılan byteların 30BE3h adresinde yer aldığı görülmektedir. HexWorkshop programının kendisini kullanarak Hworks32.exe dosyası açılarak 30BE3h adresine gidilir ve 0F8479000000 byteları 909090909090 byteları ile değiştirilerek başka bir isimle kaydedilir. Çünkü aynı isimle o an hafızada olan bir dosya kayıt edilemez [5].
1.3.9. Programın son halinin kaydedilmesi
Daha sonra HexWorkshop programından çıkılarak orijinal dosyanın adı başka bir isimle kaydedilip, kırılmış dosya orijinal adıyla kaydedilerek program hazır hale getirilir[5].
1.3.10. Programın register edilmesi
Daha sonra yapılması gereken, programı çalıştırıp herhangi bir Seri Numarası yazarak kayıtlı hale getirmektir.
2. PROGRAMLARIN DENEME SÜRÜMLERİNDEN FONKSİYON KISITLAMASININ KALDIRILMASI
Program koruma tiplerinden bir tanesi de, programın bazı fonksiyonlarının kısıtlanmasına dayanır. Satın alınmadığı müddetçe bu tür programların en önemli fonksiyonları kullanılamaz. Bu tür korumaya bir örnek verilecek olursa, Acrobat Reader programının freeware(ücretsiz) sürümleri kolaylıkla bulunmasına rağmen, programın bünyesinde bulunan Acrobat Writer kısmına ulaşmak için programın satın alınması gerekir. Aşağıda da bu koruma tipine örnek teşkil edecek şekilde, internetten sayfa ve site indirilmesine yardımcı olan Teleport programındaki kısıtlamanın kaldırılması aşamalar halinde gösterilmiştir: