30 Ağustos 2007 Perşembe

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.

Crack işleri ile ilgilenler için aşşagıda verecegim kodlar çok yararlı olacaktır. Ayrıca bu kodlardan programcılarda yararlanabilir. Çogu program sizden register etmeniz için bir "account name" ve" password" ister ancak gel gelelim bu programlar bu işlem için yani register işlemi için sizden çeşitli

miktarlarda $$$ da istemektedirler. Eee napacagız o zaman tabiki programı bir şekilde kırmalıyız. Tabi her programı kırabilirsiniz diye bişey yok ama çogu programı kırabilirsiniz nasılmı "W32Dasm" türü bir disassembler kullanarak bir çok programı

kırabilirsiniz. Şimdi konumuz W32Dasm olmaına göre bu kısımları biraz atlayalım.... Diyelimki bir programın dodlarını makine diline cevirdiniz ve karşınıza şu şekilde satırlar geldi....

:00405C63 6882000000 push 00000082

:00405C68 56 push esi

:00405C69 FFD7 call edi

:00405C7F 7E6B je 00405CEC

:00405C6B 8D44247C lea eax, dword ptr [esp+7C]

:00405C6F 8D4C243C lea ecx, dword ptr [esp+3C]

:00405C73 50 push eax

:00405C74 51 push ecx

İşte bu satırlar programcının yazdıgı kodların makine dilindeki karşılıgıdır. Sizin bu kodlarda yapacagınız ufak bir degişiklik(je yi jne çevirmek gibi.) programın istediginiz serialle çalışmasına sepeb olabilir. Tabi her programın farklı codları oldugu için hepsinin kırılış şeklide farklıdır ama ana mantık aynı. Aşşagıda çok işinize yarayacak olan kodları veiryorum. İlerde lazım olacak bir köşeye yazın.

Hex Kodu: ASM Kodu: Anlamı:

75 yada 0F85 jne jump if not equal

74 yada 0F84 je jump if equal

EB jmp jump directly to

90 nop no operation

77 yada 0F87 ja jump if above

0F86 jna jump if not above

0F83 jae jump if above or equal

0F82 jnae jump if not above or equal

0F82 yada 72 jb jump if below

0F83 yada 73 jnb jump if not below

0F86 yada 76 jbe jump if below or equal

0F87 jnbe jump if not below or equal

0F8F yada 7F jg jump if greater

0F8E jng jump if not greater

0F8D jge jump if greater or equal

0F8C jnge jump if not greater or equal

0F8C jl jump if less

0F8D jnl jump if not less

0F8E jle jump if less or equal

0F8F jnle jump if not less or equal

NOT:Üzerinden para kazandıgınız programları sakın cracklemeye çalışmayın.

Microsoft Programları

Bilmeniz gerekenler:

 

Genellikle ilk 6 basamaktan sonra yazıcaklarınız önemli diyildir...

 

Microsoft Programları CD-Key'in sadece ilk 6 basamağının doğruluğunu

kontrol eder.

 

040-3066839 (Çoğu Program)

0401-3066839 (Microsoft Office programları... etc)

0402-3066839 (upgrade Sürümler)

* Eğer ilk bölme 4 basamaklı ise ilk bölmedeki numaradan 1 çıkararak

Upgrade Programı, Full Sürüm gibi kullanabilirsiniz.

 

 

Peki hiç Microsoft'un bir ürününü Harddiske atıp birkaçkere kurduktan

sonra "Bu Programı illegal Kullanıyorsunuz...(ve tek aktif seçenek : Exit

Setup)" gibi bişiyle karşılaştınız mı?

 

Bunun sebebi Setup.tdf dosyasıdır, bu dosya Program her kurulduğunda aktif

olur ve programa göre 10. yada 15. kurulumdan sonra bir kez daha kurmanıza

izin ermez. Tek yapacağınız şey, Bu dosyayı herhangi başka bir Microsoft

Programından aldığınız aynı isimdeki dosyayla değiştirmek. Bu kadar Basit.

 

SOFTICE PROGRAMI

Bu programi multiedit.com adresinde bulabilirsiniz.

 

İlk basta her 15 dakikada ortaya cikan mesajlari nasil ortadan kaldiracagimizi anlaticam.Bunun icin Win32 API fonksiyonunu cok iyi bir sekilde ogrenmeniz lagizim.ilk once Softice`yi calistiriyoruz ve sonrada Multi edit programini.Ortaya cikan mesaj penceresini kapatiyoruz.Simdi de Softiceye geciyoruz."bpx gettrckcount"`u kullanarak kontrol noktasini ayarliyoruz..1-2 saniye icin Softice`den cikip tekrar giriyoruz,ama artik "GetTickCount" fonksiyonunda.F12`ye basiyoruz ve artik asagidaki satirlardayiz;

sub_40F164 proc near

call j_GetTickCount

mov ecx,37h

cdq

idiv ecx

retn

sub_40F164 endp

Tick`ler yukardaki satirlarda gerceklesmektedir.Simdi de F12`ye basarak asagidaki satirlara geliyoruz;

sub_411748 proc near ; CODE XREF:

sub_440430+U3C

call sub_40F16 =>iste bu fonksiyonun ta kendisi

mov ds:dword_449388,eax =>Zaman korunmaktadir

mov eax,ds:dword_449388 =>gereksiz komut

cmp eax,ds:dword_449388C =>karsilastirma yapiyor

jz short loc_41176F =>hicbirsey yapmiyoruz

mov eax,ds:off_449A38 =>treckler burda esit +15 dakka

mov edx,ds:dword_449388 =>devam anlami

call sub40F1AC =>zarar verici prosedur

Loc_41176F: ;CODE XREF:sub_411748+15

mov eax,ds:dword_449388

mov ds:dword_44938C,eax

retn

sub_411748 endp

 

Ayrintili aciklamalar sadece "call sub_40F1AC" icin gerekli.Sadece fonksiyonunu anlamamiz yeterli.Bu prosedur 15 dakikanin gecip gecmedigini kontrol eder.En kolay bu komutu kirabilmemiz icin "call sub-40F1AC" kullanmadan asagidaki komutlari kullanarak kiracagiz;

xor eax,eax

xor eax,eax

nop

Bu komutlarla istemedigimiz o mesaj penceresinden kurtulmus oluyoruz...

 

Wİnzip 8’in crack’i nasıl yapılır…

Programın Özellikleri :

 

Winzip programı bir dosya sıkıştırma programıdır. Programı lisanslı kullanmazsak tüm fonksiyonlarını kullandırtmıyor ve her açılışta bir ekran gelerek kaydolmamızı istiyor.

 

 

Kullanılan Araçlar :

 

W32Dasm 8.9 versiyonu, Hiew6.15 versiyonu.

 

 

Programın Kırılması :

 

Internet üzerinden veya bilgisayar dergilerinin verdikleri Winzip programının 8.0 versiyonunu bilgisayarımıza kurduktan sonra çalıştırırız. Karşımıza gelen ekrandaki seçeneklerden biri olan ve kaydolabileceğimizi söyleyen seçenek seçilir. Karşımıza gelen kullanıcı ismimizi ve şifreyi soran bilgi alanlarına rast gele değerler gireriz ve regiter seçeneğine tıklarız. Karşımıza bir hata mesajı gelir. Bu hata mesajını bir kenara not ederiz ve Winzip32.exe programını W32dasm programı ile unassemble ederiz ve search ile az önce yazdığımız hata mesajını aratırız. Arama sonucunda W32dasm bize hata mesajını çıkartan komutların olduğu noktayı bize gösterir. Aramayı durdurup kürsörün bulunduğu noktadan biraz yukarısına baktığımızda bizi bu hata mesajına gönderen yerlerin ofset adreslerinin yazılı olduğu paragrafı görürüz(Refference by a (U)nconditional or (C)onditional jump address at: :00407FAA, :00407FB3, :00407FBC).

 

Bu noktalara gittiğimizde şartlı dallanma komutu olan je komutlarını görürüz. Komutların ofset adreslerini bir kenara not ederiz ve Winzip32.exe dosyasını edit özelliği olan Hiew programı ile unassemble ederiz ve az önce not ettiğimiz ofset adreslerine giderek buradki dallanma komutlarının bulunduğu ofsetleri nop komutu ile doldururuz ve F9 tuşu ile Winzip32 programını günceller ve hiewden çıkarız.

 

Winzip programını tekrar çalıştırdığımızda yine baştaki ekran gelir ve kayıt seçeneğini seçerek isim ve şifre girip registera tıklarsak hata mesajının gelmediğini görürüz. Fakat program tam olarak adımıza kayıtlanmamıştır. Çünkü programın help menüsündeki about winzip seçeneğine tıklarsak programın lisanssız olduğunu söyleyen mesajı görürüz.

 

Tekrar W32dasm ile Winzip32.exe yi unassemble edip az önce değiştirdiğimiz dallanma komutlarının olduğu satırlara gideriz. Bu dallanma komutlarının üzerlerinde bulunan ilk CALL komularının çağırdığı prosedürlere gideriz ve bu prosedürleri çağıran noktaların ofset adreslerini baştaki gibi alırız(Bu prosedürleri çağıran yerler, prosedür sonucu çıkan değerleri karşılaştıracak ve bu karşılaştırma sonucuna göre baştaki ekranı ya da istemediğimiz mesajları çıkartacaktır).

 

00407FAA üstünde bulunan ilk CALL ’in çağırdığı yerde bulduğumuz bu prosedürü çağıran yerlerin ofset adresleri şunlardır: :00407F7A, :00407F9C, :00440568, :00440673, :00440AD1, :00440B83, :0044ED86

 

Bu noktaları inceleriz.

 

İlk nokta olan :00407F7A ya gittiğimde komutun altına yakın bölümlerde bir dallanma komutu ararız(Bu noktada yok).

 

:00407F9C az önce değiştirdiğimiz nokta.

 

:00440568 , :00440575’te bir jne komutu var je yapacağız(jnenin tersi).

 

:00440673 dallanma komutu yok.

 

:00440AD1, :00440aDE’de je komutu var jne yapacağız.

 

:00440B83 dallanma komutu yok.

 

:0044ED86 dallanma komutu yok.

 

:00407FBC üstündeki ilk CALL in çağırdığı prosedürü çağıran noktaların ofset adresleri : :0040108B, :00401221, :004041E8, :00407FB5, :00433D12

 

:0040108B, :00401092’de je var jne yapacağız.

 

:00401221, :00401228’de jne var je yapacağız.

 

:004041E8, :004041EF’de jne var je yapacağız.

 

:00407FB5, daha önce değiştirdik.

 

:00433D12, :00433D19’de je var jne yapacağız.

 

Tekrar Hiew programı ile Winzip32.exe programını unassemble ederek az önce tespit ettiğimiz noktalardaki gerekli değişiklikleri yaparak programı günceller ve hiewden çıkarız.

 

Winzip programını tekrar çalıştırdığımızda doğrudan program açılır. Help menüsündeki about winzip seçeneğine tıkladığımızda lisanslı kullanıcı olduğumuzu söyleyen bir mesaj görürüz.

 

 

Hiç yorum yok: