"Teleport Pro v1.29"
Mr_Stop 
Program İsmi: Teleport Pro v1.29
Program Tipi: Site download programı
       Kullanılan Araçlar:
 SoftICE  
Basit ( X )  Orta ( )  Zor ( )  Pro ( ) 


Başlangıç

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.

Yazı

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
Son Notlar

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.