Crack ile ilgili bilgi edinmek için tıklayınız

Transkript

Crack ile ilgili bilgi edinmek için tıklayınız
Crack Nedir ?
Herkezin crack konusunda bir miktar bilgisi vardır ancak bu konuda en iyiyim demek genelde çok zordur. Đlk başta zor
gibi görünebilir fakat işin içine girdikçe çok zevkli olduğunu farkedersiniz. Crack dünyasına girdikçe PC nize ve onda
kullandığınız programlara daha fazla hakim olduğunuzu farkedersiniz. Bu sayede assembly programlama dili konusunda
da bir miktar bilginiz olacaktır. Zaten asıl amaç budur. Burada anlatılan yöntem sadece programların genel çalışma
prensipleri konusunda bilgi vermek için yazılmıştır. Doğru olan daima bir programı parasını verip lisanslı olarak
kullanmaktır. O yüzden buradaki bilgileri sadece merakınızı gidermek için kullanın ve bende bunun için anlatıyorum.
Crack için neye ihtiyacımız var? Assembly dil bilgisi elbette size bir miktar faydalı olacaktır ancak bu konuda bir bilginiz
yoksa hiç dert etmeyin çünkü sadece birkaç tane komuta göz aşinalığınız yeterli olacaktır tabii başlangıç için.
Gerekli Software
Đlk öncelikle ilk ihtiyacımız olacak program W32Dasm8.9 and Hiew. Bu programları çeşitli arama motorlarından
arayarak bulabilirsiniz.
Başlangıç Đçin Gerekli Birkaç Detay
ASM kodları ile uğraşmak pek kolay değildir, bütün hepsini bilmek zordur ancak gerekli olan birkaç tanesi üzerinde
duralım. ASM kodlarında her iki basamak bir byte gösterir. Yani 75564345=4 byte'dır. 75 bir byte,56 bir byte gibi. Eğer
biz bir kodu değiştirmek istersek daima iki basamağı değiştiririz. Mesela 75 ki bu hexadecimal da jne( jump not equal)
anlamındadır 74 'e değiştirilirse je (jump if equal) komutuna değişmiş olur. Bu değişim çoğu kez bir programı register
yapmak için yeterlidir. (Programın kendi içinden ürettiği bir seri nosunu sizin girdiğiniz bir seri nosuyla karşılaştırıp
sonucunda hata veren bir komutu hata vermeyen yani register edilmiş varsayan bir komuta değiştirebilirsiniz) Tabii bu
bu kadar kolay olmaz herzaman ama başlangıç için yeterlidir. Aşağıda gerekli olan birkaç komutu yazdım.
Je:Jump if equal
Jne:Jump not equal
nop:no operation
call: call a operation
jmp: jump
Program Koruma Tipleri
Programlar için çeşitli koruma tipleri mevcuttur. Mesela cd driverda cd olup olmadığını check eden koruma tipleri,
password koruma tipleri ki eğer doğru password'ü girmesseniz ya program register olmaz yada çalışmaz ve son
olarakta süreli programlar ki özellikle dergilerin verdiği cd lerdeki programlar böyledir süresi dolunca (30 gün, 90 gün)
program çalışmaz. En kolay kırılan programlar windows altında çalışan ve register etmek istediğinizde bir pencere
içerisinde hata mesajı veren programlardır. Mesela programı register etmek için sizden bir user name ve password ister
fakat siz eğer para veripte doğrusunu almadıysanız yazacağınız şeyler size "invalid register number" gibi yada benzer
hata mesajlarıyla geri dönecektir. Şimdi ben size bir örnekle karışık görünen ancak çok basit olan bu işin nasıl
yapılacağını göstereceğim. Örnek olarakta WinRar95 programını kullanacağız. Bu programın demo versiyonlarını dergi
cd lerinde bulabilirsiniz.
Cracking'e Başlayalım
Đlkönce şu Winrar95 programını inceleyelim. Programı çalıştırın. Üst köşede "Winrar(unregistered version)" yazıyor.
Şimdi "options" a clikleyin ve register'a basın. Karşınıza sizden bir name ve registration no isteyen bir windows mesaj
kutusu çıktı. Bunlara rastgele bir şeyler yazın. Mesela name'e "türkiye" registration number'ada "123456". Şimdi ok'e
basın. Hoop "Registration Failed" yazdı. Hiç şaşırmadınız tabiki ama programın en zayıf noktası duruyor şu anda
karşınızda. Bu hata mesajını bir kenara yazın. Winrar95.exe den iki kopya yapın bunların birinin uzantısını
w32(Winrar95.w32) diğerininkinide .exx yapın. Şimdi disassembler programımız olan W32Dasm yi çalıştıralım. Open
file to disassembler komutunu bulalım menüden ve Winrar95.w32 yi disassemble edelim. Đşlem bitince karşınıza bir
sürü anlamsız şey çıkabilir font tipinizi değiştirmeniz gerkmektedir. Disassembler butonuna basın font'a gidin select
fontu seçip Arial'ı seçin. Şimdi ekran daha anlamlı hale geldi. Şimdi yukarıda "Str References" butonunu bulup ona
tıklayın. Karşınıza programdaki bütün hata mesajları çıktı. Bizim hata mesajımızı hatırlayın. "Registration Failed". Onu
bulun ve iki kez tıklayın. Şimdi arkada W32Dasm ekranında size bu hata mesajını veren program komut satırındasınız.
Satırda görecekleriniz şunlar olacaktır.
:00413A8F 6A6A push 0000006A
:00413A91 E863640000 call 00419EF9
:00413A96 59 pop ecx
:00413A97 50 push eax
:00413A98 FF7508 push[ebp+08]
* Reference To: USER32.MesssageBoxA, Ord:0000h
:00413A9B E8120B0100 Call 004245B2
:00413AA033C0 xor eax,eax
:00413AA2 A358674200 mov dword ptr [00425758],eax
:00413AA7 A338564200 mov dword ptr [00425638],eax
:00413AAC564200 mov dword ptr [0042564C],eax
:00413AB1 EB56 jmp 00413B09
*Referenced by a (U)nconditional or (C)onditional Jump at Adress: (Buraya Dikkat)
:00413A82(C)
*Possible StringData Ref from Data Obj ->"Winrar"
:00413AB3 68D86A4200 push 00426AD8
:00413AB8 FF359C644200 push dword ptr [0042649C]
*Reference To: USER32.Set WindowTextA, Ord:0000h
:00413ABE E86B0A0100 Call 0042452E
*Possible Reference to String Resource ID=00048 : "normal"
:00413Ac3 6A30 push 00000030
*Possible Reference to Dialog:ARCINFODLG,CONTROL_ID: 006C
"Registration Failed" üzerine tıkladığınızda karşınıza çıkan ASM kodları bunlar. "Referenced by a (U)nconditional or
(C)onditioanl Jump At Adress:" satırına ve ondan sonra gelen"I:00413A82 (C)" adresine dikkat edelim. Đşte bu
adresteki komut bizi hep buraya yani hata mesajı aldığımız komut satırlarına yolluyor. Öyleyse şimdi oraya gidelim.
Win32dasm ekranının yukarısında bulunan "Goto CD LOc"(Goto Code Location) butonuna tıklayalım. Yeni bir pencere
açıldı ve o pencerenin sağ alt tarafında "Code Offset (Hex)" yazılı bir kutucuk var. Şimdi biraz önceki 00413A82 adresini
buraya yazıp ok tuşuna basalım. Bizi "Registration Failed" mesajına yollayan komut satırındayız işte. "Jne" komutunu
görebilirsiniz orada. Bu komutun üzerindeyken satırın rengini yeşile değiştirdiğine dikkat edin. Ekranın altına bakın
orada aşağıdaki gibi bir satır göreceksiniz.
Line:34985 Pg 467 of 998 Code Data @:00413A82 @Offset00013082h in File:Winrar95.w32
@Offset'den sonraki 00013082 sayısı bizi ilgilendiren sayı oluyor. Yanındaki "h" harfini ve başındaki "000" ları hesaba
katmadan "13082" sayısını bir kenara not edelim. Şimdi HIEW programımızı çalıştırıp programımızı kırma vakti geldi
işte merak etmeyin çok az kaldı. Hiew programının içinde istediğiniz exe file'ını çalıştırabilirsiniz. WinRAR95.exe'yi
çalıştırın. F4'e basın ve decode'u seçin. Bütün asm kodlarını görebilirsiniz. F5'e basın sol üst köşeye biraz önce
kaydettiğiniz @Offset yanındaki numarayı yazın. Şimdi jne komutunun satırındasınız. F3'e basın. 75(jne)'u 74(je)'a
değiştirin ve f9'a basın. F10'a basıp programdan çıkın. Đşte o komutu değiştirmiş olduk. Denemek için WinRar95
programını çalıştıralım. Registration'a gidip kafamıza göre birşeyler yazıp ok tuşuna basalım evet registration okeylendi.
Bu kadar basit. Ama bir problem var. Yukarıda hala "Unregistered Version" yazıyor. Hemen W32Dasm'yi çalııtıralım
String Data References Butondan "Unregistered Version" ifadesini arattıralım. Đki tane var. Çift tıklayalım. Benzer
satırlar göreceksiniz. "Referenced by a (U)nconditional or (C)onditioanal Jump At Adress:" yazan yerin altındaki komut
satırını yine Goto Code Location butonundan arattırıp o komut satırına gidip @offset'den sonraki sayıyı bir kenara
yazalım (180AA). Şimdi Hiew'a girip o satıra gidelim ve Jne 'u Je 'a (75'i 74'e) değiştirip save edip çıkalım. Şimdi
WinRAR95'i çalıştıralım. Oldu işte ne yukarıda "Unregistered Version" yazıyor nede register etmek istediğimizde bizi
reddediyor.