İPUCU

Trojan ve Virüsler Trojan ve Virüsler Hakkında Bilgiler.

Seçenekler

program kırma

17-09-2008 22:21
#1
Se-ZeR - ait Kullanıcı Resmi (Avatar)
Mareşal
Üyelik tarihi:
07/2008
Nereden:
İstanbul
Mesajlar:
10.915
Teşekkür (Etti):
1198
Teşekkür (Aldı):
7707
Konular:
2878
Ticaret:
(0) %
Arkadaşlar bir arkadaşımız program kırmayı öğretti bende gerekli olan programı koyuyorum W32dasm.Hepınıze yararlı olucagını dusundugum bu dokumanı sızınle paylasmak ıstedım.
Bu dokumanın yeni başlayanlar için basit cracking mantığını anlama ve bazı
programların cracklerını kendınız deneneyerek olusturmanıza yardımcı olucagını
dusunuyorum.. Şimdiden Kolay gelsin...

Yazımıza Başlıyoruz...

Öncelikle gerekli olan programları belirteyim

*W32Dasm
*Herhangi bir hex editörü



Gelelim işlemlere:

Şöyle bir hikaye uyduralım kendi kafamızdan;
Elimizde bir program var ve kırılması gerekiyor programı reglemek için ise
elimizde serial olması lasım öyleyse ilk önce programı açıyoruz ve register
bölümünü iyice inceliyoruz ne tür yazılar var ne tür buttonlar var menülerde ne
yazıyor özelliklede "ok" tuşunda ne yazıyor yani reglemek için ne yapmamız
gerekiyor bizimki "kaydet" olsun daha sonra işimizi garantiye almak için
kafamızdan bir serial sallıyoruz ve kaydet tuşunu tıklıyoruz tabii ki karşımıza
bir hata vesajı gelecektir örneğin " incorrect serial no. " olsun bizim hata
mesajımız şimdilik programla işimiz bitti kapatabiliriz.

Geliyoruz W32Dasm'a w32dasm ile programın exesini açıyoruz kısa bir bekleyişten
sonra exe mizin asm( assembly ) kısa bir bekleyişten sonra kodlar artık
karşımızda şimdi refs ten string'leri incelemeye başlayalım vede karşımıza
çıknan hata mesajını bulalım zaten hemen gözünüze çarpacaktır şimdi üstüne gidip
bir kaç kere tıklayalım bir kaç kez dememin nedeni şu bazı durumlarda hata
mesajımız birden fazla yerden gelebilir bu işleri biraz karıştırabilir fakat bur
da sadec tek bir yerden geliyor vede hep aynı yere gidiyoruz şimdi kodları
birazcık inceleyelim bakalım neler göreceğiz.

* Referenced by a (U)nconditional or ©onditional Jump at Address:
|:004012DC© --->Bu mesaja sıçrama yapan birjump adresi
|
:004012F4 6A00 push 00000000

* Possible StringData Ref from Data Obj ->"Hata!" --->Hata mesajımızın başlığı.
|
:004012F6 68F8314000 push 004031F8

* Possible StringData Ref from Data Obj ->" incorrect serial no. "
--->Karşımızaçıkan hata mesajı.

Sorun şu bizim girdiğimiz serial karşılaştırmalardan sonra eğer hatalı ise bir
tane jump sıçrama yapark programın akışını değiştiriyor ve de karşımıza hata
mesajı çıkıyor. O zaman bizim yapmamız gereken nedir? Serial yanlış ise hata
mesajı vermemesini sağlamak ve serial ı dogru kabul etmek!


şimdi dönelim işimize
Bu mesaja sıçrama yapan birjump adresi deyip gülmüştüm neden güldüğüme gelince
oradaki 004012DC öyle bi işimize yarayacak ki anlatamam!

Şimdi yukarıdaki "
;GoTo&
quot; menüsünü kullanacağız GoTo'ya tıklayarak ordan "Goto Code ********" u
seçiyoruz vede oraya "004012DC" değerini yazıp go diyoruz işte jump adresinin
üstündeyiz.
Şöyle bişeyler gelecektir.


:004012DA 09C0 or eax, eax
:004012DC 7416 je 004012F4 ---->Hata mesajına zıplayan jump.(Buraya geldik)
:004012DE 6A00 push 00000000
* Possible StringData Ref from Data Obj ->"Yuo Have Registered!!!" --->Mesajın
başlığı.
|
:004012E0 6826324000 push 00403226
* Possible StringData Ref from Data Obj ->"Congratulations, You have the
registered version now!!!" ---> amacımız buna ulaşmak.

Şimdi w32'aşağıya bakıp bu jump adresini offset değerini alıyoruzki hex
editorümüzde değiştirebileceğimiz yeri bulabileim neymiş offset "000006DC"
tamamdır w32 ile işimiz bitmiştir şimdi programımızı hex editörümüzle açıyoruz
vede Go kısmına aldığımız offset değerini yazıyoruz go dediğmiz zaman şöyle bir
yere geliyoruz..

Code:
000006d0h: EC 50 E8 73 00 00 00 83 C4 08 09 C0 74 16 6A 00 ; íP×s...â-..¬t.J.
000006e0h: 68 26 32 40 00 68 30 32 40 00 FF 75 08 E8 C6 01 ; h&2@.h02@. u.×â.Evet işte jump adresimizin

üstündeyiz neymiş değeri "74" o zaman "75" yapalım
(bu ikili çok sık kullanılır) değişiklikten sonra durum şöyle olmalı.

Code:
000006d0h: EC 50 E8 73 00 00 00 83 C4 08 09 C0 75 16 6A 00 ; íP×s...â-..¬u.J.
000006e0h: 68 26 32 40 00 68 30 32 40 00 FF 75 08 E8 C6 01 ; h&2@.h02@. u.×â.Bu ufak değişikliği

yaptıktan sonra dosyamızı save'leyerek kapatıyoruz şimdi
gidip isim vede seri numaramızı kafamıza göre dolduruyoruz register dediğimiz
zaman gümmm işte bu kadar crackme'miz kırılmış oldu hayırlı olsun bir adım daha
ilerledik

Yani naaptık bu yazıda ordaki jump'ın anlamını değiştirerek zıplamasını
engelledik böylece program hata mesajının geldği kısma atlamamış oldu mantığın
özü budur.Diğer tutoriallerimizi okuyup uygulayarak pratğimizi geliştirelim
tamam


A- Kabaca W32Dasm.

Evet SoftICE'la beraber en çok kullandığımız oyuncağımız w32dasm olsa gerek peki ne işe yarar bu w32dasm? Bu program debugger olarak kullanıldığı gibi (ama unutmayın debugger olarak softice kullanacağız) asıl görevi "Dissambler" etmektir yani programı kodlarına geri dönüştürmek ama bir şartla Assembler olarak kodlarına Buradan minik bir not düşmek istersek assembler dilini çok iyi bilmeliyiz arkadaşlar

Evet w32dasm'ın zor bir kurulumu veya herhangi bir konfigüre olayı yok oldukça basit kullanımlı bir alet şimdi bakalım w32dasm ile neler yapabiliriz:

w32'nin öle zor bir kurulumu veya herhangi bir konfigüre olayı yok oldukçada basit kullanımlı bir alet şimdi bakalım w32'ile neler yapabiliyormuşuz.

B- W32Dasm Penceresi:










Eveett şimdi gelelim burdaki menuler ne işe yarar kısaca bir göz atalım.

1- Disassembler ettiğiniz programı buradan seçebilirsiniz

2- Diassembler ettiğiniz bir programı "wpj" formatında save edebilirsiniz böylece her seferinde aynı işlemi yapmak zorunda kalmazsınız disassembler menüsünden "open project file" ile bu text dosyasını direk w32dasm'a aktarıp çalışmaya başlayabilirsiniz(bazen bir programı disassembler etmek 10 dakika aldığından zaman kazandırıcı bir olay)

3- Kodun en başına gidersiniz

4- Programın çalışmaya başladığı ilk kodun başına gidersiniz(entry point)

5- Herhangi bir sayfaya gidersiniz(önemsiz)

6- Herhangi bir komut satırının numarasını yazarak üstüne gidebilirsiniz mesela şu mavi olarak gördüğümüz satırın numarası "00"4013f2"

7- Şuanda aktif olmayan bu buton sadece herhangi bir jump'ın üstüne geldiğinizde aktif olur örnek vermek gerekirse mesela bir jump'ın üstündesiniz ve nereye zıpladığını öğrenmek istiyorsunuz direk buna basarak jump'ın gideceği yeri öğrenebilirsiniz.

8- Gene aktif olmayan bu buton siz yukarıdaki işlemi yaptığınızda aktif olacaktır yani bir jump2ın üstüne gelerek 6 numaralı butona basarak nereye zıpladığına baktınız ve geri dönmek istiyorsunuz işte bu butona basarak geri dönme işlemini yapabilirsiniz.

9- Şu anda aktif olmayan bir buton daha.Bu buton siz bir call komutunun üstüne geldiğinizde aktif olacaktır.Bir call'un üstüne gelerek bu butona bastığınızda o call komutunun içinde neler olduğunu öğrenebilirsiniz bu olaya biz trace diyoruz ve biz bu işi daha çok SoftICE'da kullanıyoruz.

10- Yukarıdaki işlemi yapıp bir call komutunu trace ettiğiniz zaman call'un içinden çıkmak için bunu kullanabilirsiniz böylece ilk olduğunuyz yere geri döneceksiniz.

11- Refs menüsünün kısa yolları bunları kendiniz keşfedin

12- Refs menüsü program içnde geçen diyalogları görebilmek için bu menüyü kullanıyoruz(geçen ayki yazılarda kullanmıştık hatırlarsanız)

13- Bulunduğumuz satırın offset adresi

C- Sonsöz

Arkadaşlar w32dasm bende en az SoftICE kadar etkili bir silahtır özelliklerini iyi öğrenmeye bakın çünkü tutoriallarda çok fazla kullanacağınız bir program.

****************************



Bu mesaj 07 Şubat 2007, 13:05:15 tarihinde ByAdmin tarafından güncellenmiştir. alıntıla



ByAdmin

Mesaj sayısı: 609 06 Şubat 2007, 21:51:35


CD KORUMASININ KALDIRILMASI
Programlardaki koruma tiplerinden bir tanesi de, CD sürücüde CD olup olmadığını kontrol eden koruma tipleridir. Bu koruma, genelde oyun programlarında kullanılır. Program bilgisayara install edilmesine(yüklemesine) rağmen, her kullanımda CD ister. Bu tür korumaları kaldırılmasının aşamaları, örnek bir program üzerinde gösterilmektedir:
4.1. Kırılacak Program
Hedef Program: Herhangi bir oyun programı.
4.2. Kırılımı Gerçekleştirecek Program
Kırılımında Kullanılacak Araçlar: W32Dasm ve HIEW
4.3. Programın Kırılım Aşamaları
Programın kırılımı, yedi aşamada gerçekleşmiştir. Bu aşamalar:
4.3.1. Programı CD’siz çalıştırarak hata mesajının alınması
Öncelikle, kırılacak oyun programı CD takılmadan çalıştırılır. Bu durumda, oyun çalışmayıp, ekrana hata mesajı veren bir pencere çıkacaktır. Programın kırılmasında bu hata mesajından faydalanılacaktır, bu nedenle hatırlanması gerekmektedir .
4.3.2. W32Dasm programında kırılacak programın çağrılması
Daha sonra, W32Dasm disassembler’ı çalıştırılır. Disassembler ekranı açıldığında, Toolbar üzerinde sol tarafta bulunan ilk küçük butona basılır ya da menülerden - Open File to Disassemble – bölümüne gelinir. Açılan menüde kırılmak istenen exe program seçilir. Disassemble işlemi yaklaşık 5 dakika sürecektir. Bu işlem tamamlandığında ekrana programın assembly kodu gelecektir .

4.3.3. Assembly kodunun incelenmesi

Bu aşamada yapılacak işlem, String Data References butonuna tıklamaktır. String Data Items adlı bir pencere açılır. Kod aşağı doğru incelenerek oyunun hata mesajı bulunmaya çalışılır. Bulunduğunda, üzerine çift tıklanır .
4.3.4. W32Dasm textine dönülmesi
Sonra Win32Dasm textine dönmek için pencere kapatılır. Görüldüğü gibi CD kontrol rutininde bulunulmaktadır. Burası hata mesajının bulunduğu alandır .
4.3.5. Call ve jump komutlarının ofsetlerinin alınması
Bu aşamada, kodda bulunan bütün call ve jump komutlarının offsetlerinin not alınması gerekir. (OPBAR’ın mevcut renginin yeşile dönüştüğünden emin olunmalıdır.) @offset’in yanındaki h uzantısız hexadecimal sayıya ihtiyaç vardır .
4.3.6. Hiew programına geçilmesi
Daha sonra HIEW’e geçilir. Bu program içinde aşağı yukarı hareket için kursor tuşları kullanılır. HIEW.exe çalıştırılır. HIEW dizini içinde, exe dosya ve programların bir listesi bulunur .
4.3.7. Hiew içinde kırılacak programın exe’sinde numaranın değiştirilmesi
Hiew dizini içindeki listeden kırılacak oyunun kaydedildiği dizine gelinerek oyunun exe’sine tıklanır. F4’ e tıklanarak - Text, Hex ve Decode – menüsüne gelinir. Bu menülerden Decode’a tıklanır. Kodların offset adreslerinin bulunduğu bir liste gelir. F5’ e basılarak Win32Dasm’da not alınan numara buraya yazılır. Sayı yazıldığında bu numaranın bulunduğu satıra gelinir ve kursor komutun üzerine konumlanır. Örneğin, ekrana E92BF9BF74 gibi 5 byte’lık bir sayı gelirse buraya F3’e bastıktan sonra 90-90-90-90-90 yazılır. F10’ a basıp çıkıldığında oyunun CD koruması kaldırılmış olur .

**********************************

Program: CYCLOPS Crackme - indir (http://crackmes.de/users/cyclops/cyclops/download)
Koruma : Serial
Gerekli Araçlar: Hex Workshop,W32Dasm 8.93 (http://www.hemenpaylas.com/download/81990/w32Dasm8.93_patched.rar.html) bide Sabır
---------------------------------------
Öncelikle merhaba arkadaşlar bu tutorial'de CYCLOPS'un hazırladığı Crackme'yi kıracağız.Bu Crackme ve kıracağımız diğer cm'lerde de lazım olacak bir çok araç var.Onun için size tavsiyem Crackcers Kit 1.1'i indirmenizdir.İçinde W32dasm,OllyDbg,Peid ve bir çok araç var.Fakat Hex Workshop yok onu da kendimiz indiriyoruz.Hex Workshop download (http://software-files.download.com/sd/8xg7vN6ySF6e5JQ3aScbuIWDf_79UUBfTbf3lA7DbEipxSAJUl BRj5qAOubCNEqMq5nbKlSgoMXP9dHeDiK7RRTXimDdHXiS/software/10264932/10004918/3/hw32v423.exe?ptype=3001&ontid=2352&siteId=4&edId=3 &pid=10264932&psid=10004918), Crackers Kit 1.1 download (http://www.free-for-all.ru/crackerskit/crackerskit.1.1-dappa.rar)
Önce crackme'yi çalıştırıyoruz ve bizden serial isteyen bir pencere görüyoruz.









Sallama bir serial girip Check butonuna basıyoruz ve bir hata pencresiyle karşılaşıyoruz.







Bu hata mesajını (Incorrect try again!!) aklımız da tutuyoruz ve tamam diyip programdan çıkıyoruz.W32Dasm'ı çalıştırıp, File-->Open File to Disassemble diyip programı W32Dasm'da dissamble ediyoruz.Menü çubuğundaki PE INFORMATIN kısmından String Data References penceresini açıyoruz.Burada hata penceresindeki mesajı(Incorrect Try Again!!) buluyoruz ve üstüne çift tıklatıp hata penceresinin kodlarına gidiyoruz.







Şimdi burayı biraz incelemeye alalım.







Resimdeki bi kısmı açıklamak istiyorum.
Referenced by a (U)nconditional or (C)onditional Jump at adress:
| :00401595(C) ------>Hata mesajına sıçramayı bu satır yapıyor.Yani hata mesajının referansı..Arkadaşlar asıl mevzu şimdi başlıyor.W32Dasm'da SHIFT+F12 tuşlarına basıyoruz açılan pencerede yukaridaki referansı yazıyoruz(00401595) ok tuşuna basıyoruz ve :00401595 7516 jne 004015AD satırına geliyoruz.







Bu satır seçili iken durum çubuğunda @Offset 00001595h gibi bi yazı görünüyor.







Şimdi bu offset'in (00001595) sonundaki h yi işin içine katmadan bi kenara yazıyoruz.W32Dasm'daki işimiz bitti offset'i kaydettikten sonra kapatabilirsiniz.Hex Workshop'u çalıştırıyoruz.File-->Open diyerek açılan pencereden programı bulup çalıştırıyoruz.Evet şimdi programın hex kodlarıyla baş başayız.CTRL+G 'ye basarak Goto pencresini açıyoruz.







Hex 'i seçili hale getirip offsetimizi yazıyoruz.(Sonuna h koymadan) ve imlecimiz 75'in önünde yanıp sönüyor.Biraz ayrıntıya inersek; buradaki 75 w32dasm'daki jne(jump if not equal) 'nin hexadecimal değeridir.Buradaki 75'i 74(je-jump if equal) yapıyoruz.Yaptığımız değişikliği kaydedip çıkıyoruz.Tekrar crackme'yi çalıştırıp sallama bi serial giriyoruz veee






işte bu kadar.Tekrar bi noktaya deyinmek istiyorum; 75 (JNE)jump if not equal-eşit değilse dallan anlamına gelir.Biz bu satırı 74 yaparak yanlış olan tüm serialleri kabul etmesini sağladık.(74-JE-Jump if Equal-Eşitse dallan)

Bu mesaj 07 Şubat 2007, 13:10:13 tarihinde ByAdmin tarafından güncellenmiştir. alıntıla



ByAdmin

Mesaj sayısı: 609 06 Şubat 2007, 22:07:42


A- Kabaca W32Dasm.

Evet SoftICE'la beraber en çok kullandığımız oyuncağımız w32dasm olsa gerek peki ne işe yarar bu w32dasm? Bu program debugger olarak kullanıldığı gibi (ama unutmayın debugger olarak softice kullanacağız) asıl görevi "Dissambler" etmektir yani programı kodlarına geri dönüştürmek ama bir şartla Assembler olarak kodlarına Buradan minik bir not düşmek istersek assembler dilini çok iyi bilmeliyiz arkadaşlar

Evet w32dasm'ın zor bir kurulumu veya herhangi bir konfigüre olayı yok oldukça basit kullanımlı bir alet şimdi bakalım w32dasm ile neler yapabiliriz:

w32'nin öle zor bir kurulumu veya herhangi bir konfigüre olayı yok oldukçada basit kullanımlı bir alet şimdi bakalım w32'ile neler yapabiliyormuşuz.

B- W32Dasm Penceresi:



Eveett şimdi gelelim burdaki menuler ne işe yarar kısaca bir göz atalım.

1- Disassembler ettiğiniz programı buradan seçebilirsiniz

2- Diassembler ettiğiniz bir programı "wpj" formatında save edebilirsiniz böylece her seferinde aynı işlemi yapmak zorunda kalmazsınız disassembler menüsünden "open project file" ile bu text dosyasını direk w32dasm'a aktarıp çalışmaya başlayabilirsiniz(bazen bir programı disassembler etmek 10 dakika aldığından zaman kazandırıcı bir olay)

3- Kodun en başına gidersiniz

4- Programın çalışmaya başladığı ilk kodun başına gidersiniz(entry point)

5- Herhangi bir sayfaya gidersiniz(önemsiz)

6- Herhangi bir komut satırının numarasını yazarak üstüne gidebilirsiniz mesela şu mavi olarak gördüğümüz satırın numarası "00"4013f2"

7- Şuanda aktif olmayan bu buton sadece herhangi bir jump'ın üstüne geldiğinizde aktif olur örnek vermek gerekirse mesela bir jump'ın üstündesiniz ve nereye zıpladığını öğrenmek istiyorsunuz direk buna basarak jump'ın gideceği yeri öğrenebilirsiniz.

8- Gene aktif olmayan bu buton siz yukarıdaki işlemi yaptığınızda aktif olacaktır yani bir jump2ın üstüne gelerek 6 numaralı butona basarak nereye zıpladığına baktınız ve geri dönmek istiyorsunuz işte bu butona basarak geri dönme işlemini yapabilirsiniz.

9- Şu anda aktif olmayan bir buton daha.Bu buton siz bir call komutunun üstüne geldiğinizde aktif olacaktır.Bir call'un üstüne gelerek bu butona bastığınızda o call komutunun içinde neler olduğunu öğrenebilirsiniz bu olaya biz trace diyoruz ve biz bu işi daha çok SoftICE'da kullanıyoruz.

10- Yukarıdaki işlemi yapıp bir call komutunu trace ettiğiniz zaman call'un içinden çıkmak için bunu kullanabilirsiniz böylece ilk olduğunuyz yere geri döneceksiniz.

11- Refs menüsünün kısa yolları bunları kendiniz keşfedin

12- Refs menüsü program içnde geçen diyalogları görebilmek için bu menüyü kullanıyoruz(geçen ayki yazılarda kullanmıştık hatırlarsanız)

13- Bulunduğumuz satırın offset adresi

C- Sonsöz

Arkadaşlar w32dasm bende en az SoftICE kadar etkili bir silahtır özelliklerini iyi öğrenmeye bakın çünkü tutoriallarda çok fazla kullanacağınız bir program.
********************

Herhalde hepiniz sıkıcı tek bytelık patchlerden softice ile serial bulmaktan sıkılmışsınızdır.Internetteki keygenleri görünce içiniz kesin cız ediyordur.Benim cız ederdi ve hala ediyor.İlk Phrozen Crew'in Winzip keygenini görünce acaip olmuştum.İsmini giriyosun seriali veriyo.Vaybe ne adamlar var . Bende belli bir patch ve serial avlama aşamasından sonra sıkıldım ve keygen yazmayı öğrenmeye başladım.

İlk başlarda işler oldukça zordu.Hiç bir dil bilmiyordum ve karşımda bir sürü ASM kodu.Offf off deyip kaç kez vazgeçtim.Ama bir gün SummitPro'yu kırarken VB de bir keygen yazdım.Aslında oldukça basitti çünkü keygenin kodu zaten açıktı.Fakat bu beni acaip gaze getirdi.İki üç vb denemesinden sonra gördüm ki vb çok dandik bir dil.Tamam 1-2 dk da formu atıp program çalışıyo ama msvbvm*.dll ye ihtiyaç duyuyor.Oldukça yavaş çalışıyo vs..

Daha sonra delphiyi denedim.Delphinin idesi daha iyiydi.Hem birsürü componet felan vardı delphi ile de bir kaç tane keygen yazdım.Ama yine aynı problem vardı.50 K lık bir programın keygeni 150 K yer kaplıyordu.Bu yüzden son durağım olan ASM yi denemeye başladım.

Yeniden tekerleği keşfetmek yerine etrafta ASM keygen taslakları varmı diye aradım.Sonunda Quantico'nun sitesinde(quantico.tsx.org fakat kapalı şu an) bir hayli örnek buldum.Kodları incelemeye başladım.Hazır keygenler ile orjinal programların dissamble edilmiş halini karşılaştırdım.Bu şekilde olayın mantığını basit birkaç fonksiyonu ve apilerin kullanımını biraz öğrendim.Ondan sonra keygen yazmak basitti.Niye ? Çünkü tek yapmanız gereken keygen algosunu softice veya w32dasm ile bulmak bunu biraz düzenlemek ve assemble etmek.İşte bu yazıda size keygen yazmayı bir kaç örnekle anlatmaya çalışıcam.

Yazı

Dördüncü keygeni yazmanın gazıyla hadi son keygenimizi yazalım.Bu sefer ki program Delphi 2 de yazılmış fakat Dede ile dissamble ediline hata veriyo.Oyüzden Softice ve W32Dasm kullanabilirsiniz.

Mighty Fax v2.9y http://www.rkssoftware.com

Softice ile debug edin veya W32Dasm ile dissamble edin sonuçta şöyle birkod ile karşılaşacaksınız.

:004AE7DE 8D55F4 lea edx, dword ptr [ebp-0C]
:004AE7E1 8B45FC mov eax, dword ptr [ebp-04] ;ismi al
:004AE7E4 E8E381F5FF call 004069CC ;ismi büyük harfe çevir.***
:004AE7E9 8B45F4 mov eax, dword ptr [ebp-0C]
:004AE7EC E82B51F5FF call 0040391C ;boyut kontrolu ?
:004AE7F1 8BD0 mov edx, eax
:004AE7F3 85D2 test edx, edx
:004AE7F5 7E20 jle 004AE817
:004AE7F7 B901000000 mov ecx, 00000001 ;ecx=1

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004AE815(C)
|
:004AE7FC 8B45F4 mov eax, dword ptr [ebp-0C] ;ismi al
:004AE7FF 8A4408FF mov al, byte ptr [eax+ecx-01] ;bir karakter al
:004AE803 3C20 cmp al, 20 ; space mi ?
:004AE805 740C je 004AE813 ; salla o zaman
:004AE807 25FF000000 and eax, 000000FF ;eax'ın high biti sıfırla
:004AE80C 0FAF45F0 imul eax, dword ptr [ebp-10] ;eaxı ebp-10 daki sayıyla çarp
:004AE810 48 dec eax ;eax=eax-1
:004AE811 03F0 add esi, eax ;esi=esi+eax

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004AE805(C)
|
:004AE813 41 inc ecx ;diğer karaktere geç
:004AE814 4A dec edx ;bütün karakterler işlendimi ?
:004AE815 75E5 jne 004AE7FC

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004AE7F5(C)
|
:004AE817 8D55EC lea edx, dword ptr [ebp-14]
:004AE81A 8BC6 mov eax, esi ;eax=esi
:004AE81C E88F84F5FF call 00406CB0 ;eax ı desimale çevir
:004AE821 8B4DEC mov ecx, dword ptr [ebp-14]
:004AE824 8B4508 mov eax, dword ptr [ebp+08]

* Possible StringData Ref from Code Obj ->"RKS-"
|
:004AE827 BA6CE84A00 mov edx, 004AE86C
:004AE82C E83751F5FF call 00403968 ;serial = RKS-+esin desimal değeri
Peki ben nerden anladım call 004069CC ın büyük harfe çevirdiğini.O bölgeye gidip bakarsanız şöyle bir kod göreceksiniz.

:004069ED 8A02 mov al, byte ptr [edx]
:004069EF 3C61 cmp al, 61
:004069F1 7206 jb 004069F9
:004069F3 3C7A cmp al, 7A
:004069F5 7702 ja 004069F9
:004069F7 2C20 sub al, 20

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:004069F1(C), :004069F5(C)
|
:004069F9 8806 mov byte ptr [esi], al
:004069FB 42 inc edx
:004069FC 46 inc esi
:004069FD 4B dec ebx
:004069FE 85DB test ebx, ebx
:00406A00 75EB jne 004069ED
Bu kod benim size birinci tutorialde verdiğim uppercase proc ile aynı.O yüzden ben orayı gördüğümde direkt orayı atladım.Serial şeması oldukça basit yine.Her bir karakteri [ebp-10] daki sayıyla çarpıp topluyo bunu desimale çeviriyo ve RKS- nin sonuna yapıştırıyor.Mesele ebp-10 de ne var ? O bölgeye geldiğinizde d ebp-10 yazarsanız data penceresinde 1B54 ü göreceksiniz.Bu program da yine delphi olduğundan aynı saçmalığı yapmış.Eax a hem ismi atmış hemde değişken olarak kullanmış.O yüzden and eax, 000000FFile ah ı temizlemek zorunda kalmış.Siz isterseniz bir önceki keygende olduğu gibi optimize edebilir veya olduğu gibi bırakabilirsiniz.Ben bu sefer olduğu gibi bırakıyorum.Çalışan keygen kodu şöyle olucaktır.



alıntıla



ByAdmin

Mesaj sayısı: 609 06 Şubat 2007, 22:09:07


invoke GetDlgItemText, _hWin, EDIT_NAME, ADDR szName, 32h ;ismi al
cmp eax,0 ;isimde birşey var mı ?
je @@err ;yoksa hata mesajını göster
invoke CharUpperBuff,addr szName,eax ;büyük harfe çevir
mov edx,eax
mov ecx, 00000001 ;ecx=1
xor esi,esi ;esi=0
@loop:
mov eax, offset szName ;ismi al
mov al, byte ptr [eax+ecx-01] ;bir karakter al
cmp al, 20h ; space mi ?
je salla ; salla o zaman
and eax, 0FFh ;eax'ın high biti sıfırla
imul eax, 1B54h ;eaxı ebp-10 daki sayıyla çarp
dec eax ;eax=eax-1
add esi, eax ;esi=esi+eax

salla:
inc ecx ;diğer karaktere geç
dec edx ;bütün karakterler işlendimi ?
jne @loop ;başa dön




invoke wsprintfA,addr szSerial,addr fmat,esi ;desimale çeviriyoruz

Keygendeki bazı yerleri gereksiz oldukları ve yer kaplamaması için kaldırdım.Gördüğünüz gibi olay çok da zor değil aslında.Size compile etmeniz için source kodu da veriyorum.Bunu compile edebilmeniz için Masm32 paketine ihtiyacınız olacak.Masm32 yi http://masm32.cjb.net adresinden indirebilirsiniz.Masm32 yi kurduğunuz harddiske zip paketini açın.QuickEdit ile mighty.asm dosyasını açın.Project Menüsünden Build All'u seçin.Program compile olacaktır.

Mighty Fax v2.9y Keygen Source

Bu yazıyla son keygenimizi de bitirmiş olduk.Mighty faxı yapan firmanın daha bir sürü programı var sadece çarpılan sayı değişiyor.Bu sayede bir sürü programa keygen yazabilirsiniz.

Gördüğünüz gibi aslında keygen yazmak o kadar da zor birşey değil.Önemli olan keygenin algoritmasını iyi anlamak ve bunu koda dökmek.Siz kendinizi hangi dilde rahat hissediyorsanız onu kullanın.Ama Win32ASM de yazmak tabii ki en kolayı çünkü gördüğünüz gibi sadece copy paste yapıyoruz.

Son olarak sizden ricam eğer buradaki keygenleri baz alarak bir keygen yazarsanız http://mrstop.da.ru ya link vermeniz veya en azından Thanks to Mr_Stop yazmanız.İşte bu kadar artık siz de keygen yazabiliyorsunuz

Mr_Stop / DESPERATE

Bu yazıyı yazarken bana destek olan renaTgaD ve MbR ye teşekkür ediyorum.MbR eferin lem Patchmaker harbiden güzel olmuş

*****************
Crack nedir?


Herkesin 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.93(patch'li olması işinizi çok daha kolaylaştıracaktır) ve Hex view. Bu programları çeşitli arama motorlarından arayarak bulabileceğiniz gibi benden maille de isteyebilirsiniz.

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 her zaman 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 driver'da cd olup olmadığını check eden koruma tipleri,password koruma tipleri ki eğer doğru password'ü girmezseniz ya program register olmaz yada çalışmaz ve son olarak da 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 verip de doğrusunu almadıysanız yazacağınız şeyler size "invalid register number" gibi yada benzer hata mesajlarıyla geri dönecektir.(Tabi dünyada görülmemiş derecede ballı biriyseniz ve attığınız password tutarsa o ayrı bir konu).Şimdi ben size bir örnekle karışık görünen ancak çok basit olan bu işin nasıl yapılacağını bedavaya göstereceğim. Örnek olarak da 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 clickleyin 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'a da "123456".Şimdi ok 'e basın. Hoop "Registration Failed" yazdı. Hiç şaşırmadınız tabi ki 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ğerininkini de .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 ********) 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 işte link
http://rapidshare.com/files/71329106/w32dasm8.93_eProgramy.org_.rar.html



alıntıdır
Kullanıcı İmzası
Düşman edinmek istiyorsan bir şeyi değiştirmeyi dene.


Sıkça Sorulan Sorular (Lütfen Pm Atmadan Önce Bir Bakın)


~Twitter~
~Feysbuk~
endernero001 Teşekkür etti.

18-07-2012 16:25
#2
zaza2828 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
07/2012
Mesajlar:
2
Teşekkür (Etti):
0
Teşekkür (Aldı):
0
Konular:
1
Ticaret:
(0) %
selamın aleyküm üstad benim bi programa ihtiyacım var kırabilirmisin emeğinin karşılığını veririm program dangılkey ile çalışıyor adı m e t a lix saygılar
18-07-2012 20:37
#3
Binefs - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
07/2012
Nereden:
Suriyeli Urfa Göçmeni.
Mesajlar:
1.772
Teşekkür (Etti):
181
Teşekkür (Aldı):
336
Konular:
228
Ticaret:
(0) %
Teşekürler.
14-08-2012 13:43
#4
enom69 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
08/2012
Mesajlar:
219
Teşekkür (Etti):
32
Teşekkür (Aldı):
22
Konular:
41
Ticaret:
(0) %
SA kardeş ben programı yükledim programı assebly ediyom ama yazı çıkması gerekiyo saçma şekiller çıkıyo yarrdımm
bu arada işletim sistemi win7 64 bit
15-08-2012 13:08
#5
enom69 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
08/2012
Mesajlar:
219
Teşekkür (Etti):
32
Teşekkür (Aldı):
22
Konular:
41
Ticaret:
(0) %
yardım yokmu
15-08-2012 22:48
#6
Üyelik tarihi:
07/2012
Nereden:
Adana
Yaş:
28
Mesajlar:
479
Teşekkür (Etti):
22
Teşekkür (Aldı):
24
Konular:
55
Ticaret:
(0) %
süper konu saol
16-08-2012 01:13
#7
Se-ZeR - ait Kullanıcı Resmi (Avatar)
Mareşal
Üyelik tarihi:
07/2008
Nereden:
İstanbul
Mesajlar:
10.915
Teşekkür (Etti):
1198
Teşekkür (Aldı):
7707
Konular:
2878
Ticaret:
(0) %
Alıntı:
enom69´isimli üyeden Alıntı Mesajı göster
yardım yokmu
Yardım merkezine açarsanız iyi olur, konu eski, hatırlıyamadım.
Kullanıcı İmzası
Düşman edinmek istiyorsan bir şeyi değiştirmeyi dene.


Sıkça Sorulan Sorular (Lütfen Pm Atmadan Önce Bir Bakın)


~Twitter~
~Feysbuk~
26-08-2012 23:22
#8
CaTaLeYa - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
08/2012
Nereden:
Ankara
Mesajlar:
331
Teşekkür (Etti):
14
Teşekkür (Aldı):
121
Konular:
47
Ticaret:
(0) %
Kardeş Eyvallah Konu İçin ama okumadım Yalan Söylemeyelimde
Kullanıcı İmzası
ℂ⋆🐺 ℂ⋆

Eğer Sınırlarınzda
Sorun Varsa,
Bunu Gidermenin
Tek Yolu,
Sınırlarınızı
Genişletmektir

ℂ⋆🐺 ℂ⋆
27-08-2012 13:35
#9
By AYhan - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
10/2011
Nereden:
İstanbul
Mesajlar:
1.156
Teşekkür (Etti):
717
Teşekkür (Aldı):
756
Konular:
71
Ticaret:
(0) %
bu kadar yazıyı kim okuyacakki
halukreis123 Teşekkür etti.
27-08-2012 15:22
#10
Optimist® - ait Kullanıcı Resmi (Avatar)
Forumdan Uzaklaştırıldı
Üyelik tarihi:
01/2012
Nereden:
İstanbul
Mesajlar:
1.757
Teşekkür (Etti):
33
Teşekkür (Aldı):
521
Konular:
204
Ticaret:
(0) %
Konu 2008 de Açılmış biraz daha kısa olsaydı sabite alırdım Fakat şuanda sabitde kimsenin okuyacığını sanmıyorum, bu arada kim hortlatdı konuyu

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı