|
|
|
|
|
|
|
Kullanılan Araçlar:
|
|
|
Bu yazıda softice ile nasıl serial bulunacağını anlatıcam.Bu yöntemi iyi öğrenin.Buna live approach(canlı yaklaşım) deniliyor.Bu yöntemle bir sürü programın serialini bulabileceksiniz.
|
|
Bu programi kırarken Softice kullandığımdan size bununla alakalı bir kaç bilgi vermek istiyorum.Assembly dili bir kaç sayfada anlatılacak kadar kısa birşey olmadığından ben burada crackerlarin çok kullandiği bir kaç teknikten ve komuttan bahsedeceğim.Softice ekini okuyarak ilk başlangıcı yapın.Softice i ekte anlattığım şekilde kurun.Geçen yazıdaki assembly kodlarına bakarak biraz çalışın.Biliyorum anlaşılması pek kolay değil ama en azından bir kulak dolgunluğu olsun.Programı kırarken arada bir ona bakın ve anlamaya çalışın.Bu kadar önsöz yeter hadi kıralım.Programı açtığımızda bizi rahatsız eden hiçbir ekran falan çıkartmıyo ama bir siteyi indirirken en fazla elli dosyayı çekmemize izin veriyo.(50 dosyayla nasıl test edecez bu programı :) ).İlk olarak yapacağımız iş herzaman olduğu gibi help dosyasında register kısmın falan okumamız bu bize programın nasıl kayıtlı hale getirileceği hakkında az da olsa bir bilgi verecektir.Klasik olarak help kısmında about veya register diye bir yer varmı diye bakıyoruz.Evet register diye bir yer var.Oraya tıkladığımızda karşımıza Name, Company ve Code dan oluşan bir pencere geliyor.Şimdi Softice i kurmuş ve Softice ekini okuduysanız ne yapacağımızı biliyorsunuz.Programı breakpoint ile durduracaz.En fazla kullanılan breakpointeler bpx getwindowtexta ve bpxgetdlgitemtexta dır.Sonunda ki a 32 bit programlar için olduğunu gösteriyo.Şimdi name kısmına Mister Stop company kısmına Turkish Scene Serial kısmında da 7777777 diye sallama bir serial yazalım.Enter tuşuna basmadan önce Ctrl+D ile Softice 'a geçip breakpoin koyucaz.Softice da iken bpx getwindowtexta yazip entere basıyoz sonra x ile yeniden windowsa dönüyoruz.Evet şimdi entere basalım.Amanin yeniden softice ekranına geldik ,çünkü program getwindowtexta ile bizim yazdıklarımızı okumaya çalıştı ve softice da bu komutu görünce durdu.Kayıt ekranında üç tane girdi olduğu için program bunları teker teker okuyacak ve kendi gerçek serial ile bizim verdiğimiz seriali karşılaştıracak.Bu yüzden softice da iken x diyp enter basıcaz.Sonra bir daha x yazıp entere basıcaz.Boylelikle bizim isim ve şirket kısımların programa okutmuş olacaz.Bundan sonra program artık registerlarla (tükçesi saymaç mı ne) bunu değişik hesaplardan geçirecek ve kodu hesaplıyıp bizim kod ile karşılaştıracak.Softice da iseniz şöyle bir ekran karşınızda olması lazım.
USER32!GetWindowTextA
BFF51804 B1B2 MOV CL,B2
BFF51806 55 PUSH EBP
Burada iken bc 0 ile koyduğumuz breakpointi temizliyoruz.Şimdi biz bu kodu takip ederek gerçek seriali bulmaya çalışacaz.Doğruyu söylemek gerekirse ben öyle assemblyden çok anlamıyorum fakat şu koddan bize gerekli olanların karşısına bazı açıklamalar koydum.Ben bir kere F11 e basarak kodu atladım bir basamak.İsterseniz adım adım izlemek için F10 tuşunu basabilirsiniz.Assembly ekini okumazsanız bu kısımlardan hiçbir şey anlamazsınız.Alt tarafta o an hangi exe veya dll nin çalıştığı yazmaktadır.Hala teleport pro bizim verdiğimiz bilgileri okuduğundan şuraya gelinceye kadar F10 a basın.
* Reference To:
USER32.GetWindowTextA, Ord:013Fh
:0044A950 FF15C0434600
Call dword ptr [004643C0]
:0044A956 8B4D10
mov ecx, dword ptr [ebp+10]
:0044A959 6AFF
push FFFFFFFF
:0044A95B E83793FFFF
Call 00443C97
:0044A960 EB0B
jmp 0044A96D
00444A95B deki
Call i F8 ile icine girebiliriz ama pek ilginç bir şey yok.Evet bu noktada size
bir ipucu veriyim.Eğer call larin ardindan conditional jump yani "je" "jne"
gibi kodlar yoksa bu callari F10 ile izleyebiliriz.F10 ile kodu izlerken bütün
kodu buraya yazmadim.Bize gerekli olan yerleri yazicam sadece.F10 ile kodu birazdaha
izlerseniz suraya geleceksiniz.
.................
0042472D C6415C01
mov [ecx+5C], 01
:00424731 E958FFFFFF
jmp 0042468E
:00424736 B8981F4600
mov eax, 00461F98
:0042473B E8B0610000
call 0042A8F0
:00424740 51
push ecx
:00424741 51
push ecx
:00424742 53
push ebx
:00424743 56
push esi
:00424744 57
push edi
:00424745 8BF9
mov edi, ecx
:00424747 6A01
push 00000001
:00424749 E8F1DE0100
call 0044263F
:0042474E 33DB
xor ebx, ebx
:00424750 6A0A
push 0000000A
:00424752 53
push ebx
:00424753 FFB7DD000000
push dword ptr [edi+000000DD] ;Seriali
edi+dd ye tek tek yaz
:00424759 E852700000
call 0042B7B0
:0042475E 8B0D9C1A4800
mov ecx, dword ptr [00481A9C]
:00424764 83C40C
add esp, 0000000C
:00424767 8945EC
mov dword ptr [ebp-14], eax
:0042476A 3899CD020000
cmp byte ptr [ecx+000002CD], bl
:00424770 0F841B020000
je 00424991
.....
Eğer bu noktada iken yani xx:00424753 de iken d edi+dd yazarsaniz data penceresinde
şunu görürsünüz. EC 25 A3 00.Eğer d A325EC yazarsak data penceresinde
bizim sallama kodu yani '7777777' i görürüz.Neden tersten alip d ile oraya
gittik.Çünkü, program bizim verdiğimiz seriali byte byte alip belirtilen belleğe
yerleştiriyor.Dword ptr o demek.Evet şu an artık sonlara doğru gelmekteyiz.Biraz
daha izleyin kodu şuraya geleceniz.
....
* Possible StringData Ref from Data Obj ->"User"
|
:00424778 BED0B74700
mov esi, 0047B7D0
:0042477D 0F840B010000
je 0042488E
:00424783 FFB7D5000000
push dword ptr [edi+000000D5] ;Kullanıcı
ismini belleğe yerleştir
:00424789 E894090000
call 00425122
:0042478E 3945EC
cmp dword ptr [ebp-14] ; Eax ile gerçek
kodu karşılaştır
:00424791 59
pop ecx
:00424792 753A
jne 004247CE ;Kod doğru değil beceremedin
Mr.Cracker
:00424794 8D4DF0
lea ecx, dword ptr [ebp-10] ;Kod
doğru bu yollar helal sana
:00424797 E8B2EF0100
call 0044374E
* Possible Reference
to String Resource ID=07076: "Thank you! Your copy
of Teleport Pro is now registered",
...
Şimdi bizim tek yapacağimiz ne :0042478E yi F10 ile geçtikten sonra(yani program
o bölgeyi çalıştırdıktan sonra) ? eax yazmamız.Bunu yazdığımızda 1458171568
i goreceksiziniz.Herhalde bunu ne olduğunu anladınız.Bizim gerçek serial.Softice
dan ciktiktan sonra Name= Mister Stop Company =Turkish
Scene Serial = 1458171568
yazıp programı kayıtlayın.
Bu yazı gerçekten biraz çalışmayı gerektiriyo.Ekte bulunan softice ekini tamamen
okuyun.Softice ile ilk defa bir yazı yazdığımdan yazı bölük pörçük oldu ama
artık idare edin.Gördüğünüz gibi program yazarları programlarını korumak için
öyle fazla uğraşmıyorlar.Biraz çaba ve şansla bir çok programı kendiniz kırabilirsiniz.
3 Şubat 2000 Ek:Bu program için bir keygen kodladım.Download etmek için buraya tıklayabilirsiniz.Keygen assembly ile kodlanmıştır.(Keygende yazan LaptoniC benim yabancı grupta kullandığım nick'im.Keygen 20 k kadar aslında 8 k idi fakat resim koyunca boyutu arttı) Programın seriali nasıl hesaplandığını görmek için 00424789 deki call a F8 ,le girin.Hesaplama şöyle gerçekleşiyor.İlk başta isim en az 5 karakter mi diye bakılıyor.Daha sonra boydan 4 çıkartılıyor ve 4.karakterden sonraki her karakter 5DFEE4A4H ile xor edilip toplanıyor.Assembly de yazarsak şöyle bir şey
mov edi, offset szName ; İsmi ediye yolla
push edi
call lstrlen ; Listele
cmp eax, 5 ; 5 ten düşükse işlemi durdur.
jl ExitProc0
add eax, -4 ; 4 çıkart
xor ebx, ebx ; ebx i sıfırla
lea edi, szName ; İsmi al
mov esi, 5DFEE4A4H ; Numarayı esiye yolla
Hesapla:
cmp ebx, eax ; Sona vardık mı ?
jae Goster
xor esi, [edi+ebx] ; Deilse Xor la
inc ebx ; Ebx i artır
jmp Hesapla
Goster:
mov eax,esi ; Serial eax 'ta
|
|
Bu yazıda yazım yanlışları hatta bilgi hatası olabilir.Eğer bir yanlış bulursanız bana email atın düzeltmeye çalışırım.Bir programı eğer gerçekten kullanıyorsanız, programı satın almayı düşünün.Micro$oft programlarını - bırakın satın almayı - kullanmayı bile düşünmeyin.