piyasadaki programları kırmak için
http://astalavista.box.sk/ yada benzeri sitelerden crack ler indirerek programlari çalisir hale getirmeyi yada Nag Screenlerden kurtulmayi biliyorsunuzdur. (Bilmiyosaniz zaten bu sayfada size göre bisi yok )
merak etmedinizmi hiç?
Aslinda düsünüldügü kadar zor bir is diyildir... Biraz deneyiminiz varsa 5 dakkanizi harcayip istediginiz programi internetten crack indirmeden kendiniz kirabilirsiniz.
Öncelikle biraz programlama ve ASM Bilgisine ihtiyaciniz var, Eger assemble size birsey ifade etmiyorsa caninizi **** mayin Holy babaniz size anlatir bisiler... Eger iyi düzeyde Programlama bilginiz varsa, Programcilarin Kolayca kirilmayan programlar yazmalari için dikkat etmeleri gereken noktalari da burda açiklicam... simdilik assemblein Maiknenizin anladigi dil oldugunu söyliyelim.
Öncelikle sunu söylemeliyim ki Her programi kiran kesin bi yönetm yoktur, Biraz kafayi yormaniz gerekio... elinizdeki Programlari cracklemek için assagidaki programlara ihtiyaciniz olacak..
programın adı : hex workshop (
http://www.tahribat.com/download/hw25.exe )
Çok kullanisli bir Hex editor. W32Dasm32 (
http://www.tahribat.com/download/w32dasm.zip ) 32 Bit Disassembler, Exenin kodlarini birazcik daha anlasilir bi hale sokup bize faydali oluyor. RegMon Registry monitor programı (
http://www.tahribat.com/download/regmon.zip ) Programi kullanmakta oldugunuz zaman içinde Windows Registrysine eklenen yada degistirilen herseyi size rapor eder.FileMonFile Monitor (
http://www.tahribat.com/download/filemon.zip ) Hangi dosyanin neresinde ne degi**** lik yapildigini bildirirNumega SofticeDebugging Programi ama Dos tabanli oldugu için Windows Milennium ve sonrasinda çalismiyor, onun için açiklamasina girmicem .... (
www..org )
Isterseniz öncelikle bu is için en çok isinize yariycak program olan Hex Workshopu kendisini kullanarak cracklemekle basliyalim ..
Registration Key isteyen Programlari kirma:
(Hex Workshopu kullanarak Hex Workshopu crackliyoruz ehehehheh )
Mesela Kimi program düzgün çalismasi için size Registration key sorar...
Alin iste Hex Workshop V2.50 böyle bi program ...
Basliyoruz.. Öncelikle programi açin... help de registration u gördünüz mü? sizden bi registration key istio... sallayin bisiler... Tutmadi dimi? Eger çok balli biri diyilseniz hayatiniz boyunca denesenizde tutturamazsiniz. Makine Salladiginiz kod üstünde islem yapar, programin güvenligi açisindan verdiginiz user name e göre sifrenizde degi**** olmak zorundadir çünkü...
ana mantik en basite indirgenmis olarak sudur...
eger girilen usename ve sifre algoritmaya uyuyorsa... Bu adam bu programi istedigi gibi kullanabilir.
eger girilen usename ve sifre algoritmaya uymuyorsa... ******ip gitsin, bedawa dagitmiyoruz...
Algoritmayi çözmek gerçekten zordur, onun yerine biz ana mantigi tersine çevirmeye çalisicaz..
yani program koduyla oyna***** adamin yanlis sifre girmesi halinde programa dogru sifre girilmis muamelesi yaptirmaya çalisicaz... bu durumda makine, mantik olarak dogru username ve sifre girilirsede yanlis sifre muamaelesi uyguliycak ama söyledigim gibi salli***** dogru sifre girmek imkansiz gibi bisi zaten.
Herneyse Sifreyi kafadan attiniz... size bi hata mesaji geldi.. error mesaj penceresinin basligina bakin ne yaziyo...
"Registration unsuccessful" bunu bi yere not edin lazim olucak.
Hex workshopu kapatin ve bi yere programin exe dosyasinin(HWORKS32.EXE) bi yedegini alin.
simdi W32Dasm prgoramini açiyoruz... menuden disassembler > open file to disassemble i seçiyoruz. burdan HWORKS32.EXE yi açiyoruz, ve program bizi biraz beklettinten sonra önümüze makine dilinde birsürü kod çikariyo...
bi bok anlamadiniz dimi çikanlardan
Herneyse Yine menuden Refs > Dialog references i seçelim. ve burda biraz önce gördügümüz "Registration unsuccessful" yazisini bulalim. hmm sanirim orda yok, unutalim o zaman simdilik... assagidakileri uygulayalim... eger aradigimiz pencerenin adini burda bulsak asagidakilere gerek kalmazdi ama bulamadik napalim...
Menulerden Search>Find text e tikla***** Registration Unsuccessful yazalim.
söle bisi çikicak karsimiza...
Name: DialogID_0075, l of Controls=003, Caption:"Registration Unsuccessful", ClassName:""
001 - ControlID:FFFF, Control Class:"STATIC" Control Text:"You have entered an invalid registration number."
002 - ControlID:FFFF, Control Class:"STATIC" Control Text:"Please confirm you entered a valid.....
003 - ControlID:0001, Control Class:"BUTTON" Control Text:"&OK"
Yani kisaca kafadan attigimiz serial i yazinca karsimiza çikan diyalogun makina dilindeki hali....
Üstteki satirdaki DialogID_0075 e dikkat edelim simdide...
Tamam, simdi Dialog references e dönelim programin Refs menusundeki.
Dialog: DialogID_0075 satirini bulup çift tiklayalim. azicik yukari scroll edelim... su satiri gördükmü?
* Possible Reference to Dialog: DialogID_0075
Burda Asm ile yazilmis satirlar var, yukaridaki satirin anlami su... Program bu noktada Registration Unsuccessful baslikli diyaloga basvuruyor. Bu pencere yanlis sifre girildiginde çiktigina göre aradigimiz kod buralarda biryerlerde fakat devam etmek için biraz Assemble ögrenmemiz gerekicek
Push, Lea, call, jne, jmp, jne, .... bunlarin hepsi asm komutlari fakat biz konu program kirmaysa bizi ilgilendirenler sadece mantiksal seçim yaptiran komutlar... su suna esitse söle yap, bu bundan büyükse böle yap falan gibi seyler yani... Açiklamalari yapicam birazdan siz sadece okuyun anlamasanizda simdilik... Bu tip komutlara örnek olarak Jne, Jmp, Je, jae, jb, je falan gibi komutlar var asm dilinde... Farkettiyseniz hepsi J harfiyle basliyo...
Program Registration unsuccessful diyaloguna ihtiyaç duyduguna göre bu noktadan biraz önce sifrenin dogru yada yanlis oldugunu kontrol eden kod yazili olmali, bu yüzden * Possible Reference to Dialog: DialogID_0075 satirindan yukari dogru her satira bakip J ile baslayan komut ariyoruz... biraz yukari çiktiktan sonra asagidaki gibi satirlar görüceksiniz. highlighted satiri asagidaki gibi Je ile baslayan komutun üstüne gelin. o satir yesil olucak...
simdiii..... Je li satiri sectikten sora status bara bakiyoruz @Offset yazisini gördünüzmü? onu bi köseye not ediyoruz... sonundaki h harfini ve bastaki 0lari not etmenize gerek yok.. hatta not etmeyin. yani 256B3 &l039;ü not edin.
Burdaki offset, aradigimiz kodun exe içindeki yeri... tamamdir istedigimizi aldik artik W32Dasm yi kapatabiliriz. Hex Workshopu açin, hatirliyorsaniz bi yedegini almistik, siz program files in icinde duran orjinalini açin...
Simdi menuden File > open a tikla***** daha önceden yarattigimiz Hworks.exe nin yedegini açalim. karsiniza yine bi sürü sey çikti... Edit Menusunden Gotoyu seçin, Beggining of File&l039;i tiklayip Offset&l039;e 256B3 yazin. aynen assadaki gibi yani..
Gotoya tiklayin... karsiniza söle bisi gelicek...
Imlecin bulundugu konumun yaninda 0F 84 bulunuyor... Bu biraz önce W32Dasm programinda gördügümüz Je komutunun Hex kodundaki anlami bu... Hatirlarsaniz W32 asm programinda Registration unsuccessful diyalogundan önceki J ile baslayan ilk komutu aramistik. bu komut Je yerine baska birseyde olabilirdi o zaman burda 0F 84 yerine baska bir kod da olabilirdi... Yani bu offsette 0F 84 bulmamizin sebebi serialin dogrulugunun Je komutuyla kontrol edilmesidir. farkli komutlarin Hex kodlarini da assagida verdim... ASM komutlari genellikle kisaltmalardan olustugu için yanlarina ingilizce anlamlarini yazdim.
Hex Kodu:ASM Kodu:Anlami:75 yada 0F85jnejump if not equal74 yada 0F84jejump if equalEBjmpjump directly to90nopno operation77 yada 0F87jajump if above0F86jnajump if not above0F83jaejump if above or equal0F82jnaejump if not above or equal0F82 yada 72jbjump if below0F83 yada 73jnbjump if not below0F86 yada 76jbejump if below or equal0F87jnbejump if not below or equal0F8F yada 7Fjgjump if greater0F8Ejngjump if not greater0F8Djgejump if greater or equal0F8Cjngejump if not greater or equal0F8Cjljump if less0F8Djnljump if not less0F8Ejlejump if less or equal0F8Fjnlejump if not less or equal
Eveet kodun yerini bulduk, kodu da bulduk sira geldi kodu ters çevirmeyee... Çok basit... Je nin anlami Jump if equal, O zaman bunun yerine Jump if not Equal (Jne) komutunu koyarsak kod tam tersine çalisicak. Jne nin hex karsiligi 0F 85... o zaman buldugumuz degerin yerine bunu girelim... amman dosyaya insert yapmiyalim, dosya boyutu degisirse büyük ihtimalle çalismaz çünkü. 0F 85 in üstüne yazalim yani, 84 ü 85 yapalim. üstüne yaziyorsaniz Hex Workshop sizi uyaricak zaten.
Eveet bunuda yaptiysaniz artik save edin, Hex workshoptan çikin. Hex workshopun exe dosyasini silip yerine degistirdigimiz exe dosyasini koyun... önceden yaptigimiz gibi helpden registrationa basin... Ve kodu yine sallayin kodun dogrulandigini göreceksiniz Size username ve organization soracak ve register olmus olacak...
Biraz uzun ve zahmetli ama basit sayilir. Bunu degi**** programlarda da deneyebilirsiniz. yada programlama bilginiz varsa burda ögrendiginiz offsetteki kodu degistiren bir program yazabilirsiniz.
Bu kadari programi kirmaniza yeter ama eger baskalarinin kullanmasi için programi kiran bir exe dosyasi yaratmak istiyorsaniz o konudada yardimci oliim... Asagidaki örnek hex workshop için yazdigim Crackin source code u, belki faydali olur.
Uses Crt;
Const A: Array[1..2] of Record &l123;<-------- 2 byte cracklenecek}
A : Longint;
B : Byte;
End =
((A:&l036;256B3;B:&l036;0F),(A:&l036;256B3;B:&l036 ;84));
&l123;<--offset "256B3" ve "0F 84" deisecek}
Var Ch:Char;
I:Byte;
F:File;
FN:file of byte;
Size:longint;
Begin
Writeln(&l039;My Hex Workshop Crack &l039;writeln(&l039;Hex Workshop V2.54 Crack&l039;
Assign(F,&l039;HWORKS.EXE&l039; &l123;<-------------- Cracklenecek dosyanin adi}
&l123;&l036;I-} Reset(F,1); &l123;&l036;I+}
If IOResult <> 0 then
begin
writeln(&l039;Dosya bulunamadi&l039;
halt(1);
end;
For I:=1 to 2 do &l123;<---------------------- 2 byte Cracklenecek}
Begin
Seek(F,A.A);
Ch:=Char(A.B);
Blockwrite(F,Ch,1);
End;
Writeln(&l039;Dosya Cracklendi!&l039;
End.
Bu olayda biraz zahmetli ama programlara 100lerce dolar saymaktan iyidir
Bosuna mi yaziom acaba ya bu kadarini yapicak adam çikarmi merak ediorum walla... bunu becerdiyseniz bana mail atin ya merak ettim )
if (objAdMgr.isSlotAvailable("leaderboard2" &l123; objAdMgr.renderSlot("leaderboard2")}