Crack nedir.?



Herkezin crack konusunda bir miktar bilgisi vardir ancak bu konuda en iyiyim demek genelde çok zordur.Ilk basta zor gibi görünebilir fakat isin içine girdikçe çok zevkli oldugunu farkedersiniz. Crack dünyasina girdikçe PC nize ve onda kullandiginiz programlara daha fazla hakim oldugunuzu farkedersiniz.Bu sayede assembly programlama dili konusunda da bir miktar bilginiz olacaktir.Zaten asil amaç budur.Burada anlatilan yöntem sadece programlarin genel çalisma prensipleri konusunda bilgi vermek için yazilmistir.Dogru olan daima bir programi parasini verip lisansli olarak kullanmaktir.O yüzden buradaki bilgileri sadece merakinizi gidermek için kullanin ve bende bunun için anlatiyorum. 
Crack için neye ihtiyacimiz var.? Assembly dil bilgisi elbette size bir miktar faydali olacaktir ancak bu konuda bir bilginiz yoksa hiç dert etmeyin çünkü sadece birkaç tane komuta göz asinaliginiz yeterli olacaktir tabii baslangiç için.

Gerekli Software

Ilk öncelikle ilk ihtiyacimiz olacak program W32Dasm8.9 and Hiew.Bu programlari çesitli arama motorlarindan ariyarak bulabileceginiz gibi benden maillede isteyebilirsiniz. 
Baslangiç Için Gerekli Birkaç Detay

ASM kodlari ile ugrasmak pek kolay degildir, bütün hepsini bilmek zordur ancak gerekli olan birkaç tanesi üzerinde duralim.
ASM kodlarinda her iki basamak bir byte gösterir.Yani 75564345=4 byte'dir.75 bir byte,56 bir byte gibi.Eger biz bir kodu degistirmek istersek daima iki basamagi degistiririz.Mesela 75 ki bu hexadecimal da jne( jump not equal) anlamindadir 74 'e degistirilirse je (jump if equal) komutuna degismis olur.Bu degisim çogu kez bir programi register yapmak için yeterlidir. (Programin kendi içinden ürettigi bir seri nosunu sizin girdiginiz bir seri nosuyla karsilastirip sonucunda hata veren bir komutu hata vermeyen yani register edilmis varsayan bir komuta degistirebilirsiniz.)Tabii bu bu kadar kolay olmaz herzaman ama baslangiç için yeterlidir.Asagida gerekli olan birkaç komutu yazdim.
Je:Jump if equal
Jne:Jump not equal
nop:no operation
call: call a operation
jmp: jump 
Program Koruma Tipleri

Programlar için çesitli koruma tipleri mevcuttur.Mesela cd driverda cd olup olmadigini check eden koruma tipleri,password koruma tipleri ki eger dogru password'ü girmesseniz ya program register olmaz yada çalismaz ve son olarakta süreli programlar ki özellikle dergilerin verdigi cd lerdeki programlar böyledir süresi dolunca (30 gün, 90 gün) program çalismaz.En kolay kirilan programlar windows altinda çalisan ve register etmek istediginizde bir pencere içerisinde hata mesaji veren programlardir.Mesela programi register etmek için sizden bir user name ve password ister fakat siz eger para veripte dogrusunu almadiysaniz yazacaginiz seyler size "invalid register number" gibi yada benzer hata mesajlariyla geri dönecektir.(Tabi dünyada görülmemis derecede balli biriyseniz ve attiginiz password tutarsa o ayri bir konu).Simdi ben size bir örnekle karisik görünen ancak çok basit olan bu isin nasil yapilacagini bedavaya gösterecegim.Örnek olarakta WinRar95 programini kullanacagiz.Bu programin demo versiyonlarini dergi cd lerinde bulabilirsiniz. 
Cracking'e Baslayalim

Ilkönce su Winrar95 programini inceleyelim.Programi çalistirin.Üst kösede "Winrar(unregistered version)" yaziyor.Simdi "options" a clikleyin ve register'a basin.Karsiniza sizden bir name ve registration no isteyen bir windows mesaj kutusu çikti.Bunlara rastgele bir seyler yazin.Mesela name'e "türkiye" registration number'ada "123456".Simdi ok 'e basin.Hoop "Registration Failed" yazdi.Hiç sasirmadiniz tabiki ama programin en zayif noktasi duruyor su anda karsinizda.Bu hata mesajini bir kenara yazin.Winrar95.exe den iki kopya yapin bunlarin birinin uzantisini w32(Winrar95.w32) digerininkinide .exx yapin.Simdi disassembler programimiz olan W32Dasm yi çalistiralim.Open file to disassembler komutunu bulalim menüden ve Winrar95.w32 yi disassemble edelim.Islem bitince karsiniza bir sürü anlamsiz sey çikabilir font tipinizi degistirmeniz gerkmektedir.Disassembler butonuna basin font'a gidin select fontu seçip Arial 'i seçin.Simdi ekran daha anlamli hale geldi.Simdi yukarida "Str References" butonunu bulup ona tiklayin.Karsiniza programdaki bütün hata mesajlari çikti.Bizim hata mesajimizi hatirlayin."Registration Failed".Onu bulun ve iki kez tiklayin.Simdi arkada W32Dasm ekraninda size bu hata mesajini veren program komut satirindasiniz.
Satirda görecekleriniz sunlar olacaktir. 
: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 tikladiginizda karsiniza çikan ASM kodlari bunlar."Referenced by a (U)nconditional or (C)onditioanl Jump At Adress:" satirina ve ondan sonra gelen"I:00413A82 (C)" adresine dikkat edelim.Iste bu adresteki komut bizi hep buraya yani hata mesaji aldigimiz komut satirlarina yolluyor.Öyleyse simdi oraya gidelim.Win32dasm ekraninin yukarisinda bulunan "Goto CD LOc"(Goto Code Location) butonuna tiklayalim.Yeni bir pencere açildi ve o pencerenin sag alt tarafinda "Code Offset (Hex)" yazili bir kutucuk var.Simdi biraz önceki 00413A82 adresini buraya yazip ok tusuna basalim.Bizi "Registration Failed" mesajina yollayan komut satirindayiz iste."Jne" komutunu görebilirsiniz orada.Bu komutun üzerindeyken satirin rengini yesile degistirdigine dikkat edin.Ekranin altina bakin orada asagidaki gibi bir satir göreceksiniz.

Line:34985 Pg 467 of 998 Code Data @:00413A82 @Offset00013082h in File:Winrar95.w32

@Offset 'den sonraki 00013082 sayisi bizi ilgilendiren sayi oluyor.Yanindaki "h" harfini ve basindaki "000" lari hesaba katmadan "13082" sayisini bir kenara not edelim.Simdi HIEW programimizi çalistirip programimizi kirma vakti geldi iste merak etmeyin çok az kaldi.Hiew programinin içinde istediginiz exe file'ini çalistirabilirsiniz.WinRAR95.exe'yi çalistirin.F4'e basin ve decode'u seçin.Bütün asm kodlarini görebilirsiniz.F5'e basinsol üst köseye biraz önce kaydettiginiz @Offset yanindaki numarayi yazin.Simdi jne komutunun satirindasiniz.F3'e basin.75(jne)'u 74(je)'a degistirin ve f9'a basin.F10'a basip programdan çikin.Iste o komutu degistirmis olduk.Denemek için WinRar95 programini çalistiralim.Registration'a gidip kafamiza göre birseyler yazip ok tusuna basalim evet registration okeylendi.Bu kadar basit.Ama bir problem var.Yukarida hala "Unregistered Version" yaziyor.Hemen W32Dasm'yi çalistiralim String Data References Butondan "Unregistered Version" ifadesini arattiralim.Iki tane var.ÇIft tiklayalim.Benzer satirlar göreceksiniz."Referenced by a (U)nconditional or (C)onditioanal Jump At Adress:" yazan yerin altindaki komut satirini yine Goto Code Location butonundan arattirip o komut satirina gidip @offset 'den sonraki sayiyi bir kenara yazalim (180AA). Simdi Hiew'a girip o satira gidelim ve Jne 'u Je 'a (75'i 74'e) degistirip save edip çikalim.Simdi WinRAR95'i çalistiralim.Oldu iste ne yukarida "Unregistered Version" yaziyor nede register etmek istedigimizde bizi reddediyor.Bu kadar basit.