folder Tahribat.com Forumları
linefolder Assembly - Reverse Engineering
linefolder Uzun Uzadıya Cracking(Winddriverghost Üzeinde Anlatım)



Uzun Uzadıya Cracking(Winddriverghost Üzeinde Anlatım)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Lizard386
    Lizard386's avatar
    Kayıt Tarihi: 09/Ekim/2007
    Erkek

    WinDriver Ghost Nasıl Kırılır

    Gerekli olan programlar:

    Klasikler: W32Dasm, SoftICE, Hex editor (benim tercihim Hiew)

    Yardımcılar: Memspy,File Scanner, Unpacker ( Un-Pack v2.2)

    ve tabiki başrol oyuncumuz WinDriver Ghost...

    Slm arkadaşlar, bu işe yeni başladığınızı düşünerek elimden geldiği kadar açıklayıcı olmaya çalışıcam.WinDriver Ghost programı bilgisayara yüklü olan donanım driver dosyalarınılarını bulur ve seçtiğiniz bi klasöre kaydeder böylelikle bilgisayarı formatlamadan önce deli gibi driver cdlerini aramazsız, bilgi-işlemde çalışırken kimi zaman işime yaradı güzel bi program... ama güzel olmasının sebebi sadece yaptığı iş değil programın yapısı, bu işe yeni başlayanlar için biçilmiş kaftan Öcelikli olarak programı bi çalıştıralım bakalım neler oluyo.. karşımıza Register ekranı çıktı kullanıcı adı ve serial istiyo sallama bişeyler girin hatalı serial girdiğimize dair Please make sure.... falan fişman diyen bi Mesajkutusu çıkarttı, şimdi programı W32Dasm ile açalım.

    w32Dasm derlenmiş olan programların kodlarını assembly dilinde incelememize olanak verir. bu sayede program içinde tanımlanmış bazı sabitlerden yola çıkarak işimize yarayan kod parçalarını bulur ve adreslerini alırız, bunun dışında bi çok işe yarar fonksiyonu vardır w32Dasm yi çalıştırın ve Diassembler-> Open File... dan programı açın ne görüyosunuz... Hiçbişe... çünkü program kapandı, bu programın paketlendiğine dalalettir.şimdi öncelikli olarak asıl yapmamız gereken şeyi yapıp programı analiz edelim. şimdi dos komut sistemine geçelim file scanner ı koyduğumuz klasöre girelim, diyelimki c:\cracker\fs olsun ve "c:\cracker\fs\fs c:\progra~1\windri~1\windrv~1.exe" komutu verin yada başlat-> çalıştır a da bu satırı yazabilirsiniz (ben ms-dos u seviyorum yok illede ben windowsdan bi an olsun ayrılamam diyosanız "file insPEctor" programını kullanabilirsiniz) karşımıza çıkan ekranda, programda UPX paketlemesi yapıldığını görüyoruz. Un-Pack programı ile bu pakedi açabiliriz Un-Pack'ın bulunduğu klasörün içinde Plugins isimli bi klasör var burada bi çok unpacker bulunuyo Un-Pack programı ise (Un-pack.exe) dosyanızı tarıyor ve uygun unpacker ı size söyleyip çalıştırıyo( eğer uğraşmak istemiyosanız  bulucağı uppacker Generic Unpacker, plugins klasörünün altındaki Guw32.exe dosyası) bununla programı un-pack ettikten sonra W32Dasm ile çalışmaya başlayabiliriz...W32Dasm ile programı açın "Refs -> String Data References" den programdaki Stringlere bakalım hatırlarsanız yanlış serial yazdığımız zaman program yüzümüze "Please make sure.... " diye hakırıyodu bizde tam olarak burda bunu arıyoruz ahanda bulduk ona çift tıklayarak bulunduğu satıra gidiyoruz...

    ****************************************W32Dasm*******************************************

    * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:

    |:0049E2A8(C), :0049E2CC(C), :0049E2F0(C), :0049E314(C), :0049E338(C)

    |:0049E35C(C), :0049E380(C), :0049E3A4(C), :0049E3C8(C), :0049E440(C)

    |

    :0049E5E0 8B45FC mov eax, dword ptr [ebp-04]

    :0049E5E3 8B8004030000 mov eax, dword ptr [eax+00000304]

    :0049E5E9 33D2 xor edx, edx

    :0049E5EB E8A44FFAFF call 00443594

    :0049E5F0 8B45FC mov eax, dword ptr [ebp-04]

    :0049E5F3 8B8000030000 mov eax, dword ptr [eax+00000300]

    :0049E5F9 33D2 xor edx, edx

    :0049E5FB E8944FFAFF call 00443594

    :0049E600 8D45EC lea eax, dword ptr [ebp-14]

    :0049E603 BA03000000 mov edx, 00000003

    :0049E608 E81B6BF6FF call 00405128

    :0049E60D 8D45EC lea eax, dword ptr [ebp-14]

    * Possible StringData Ref from Data Obj ->"$%^"

    |

    :0049E610 BAB0E84900 mov edx, 0049E8B0

    :0049E615 E86A65F6FF call 00404B84

    :0049E61A 6A00 push 00000000

    * Possible StringData Ref from Data Obj ->"Invalid Registration Code"

    |

    :0049E61C 68B4E84900 push 0049E8B4

    * Possible StringData Ref from Data Obj ->"Please make sure the registration"

    |

    :0049E621 68D0E84900 push 0049E8D0

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

    iştee lütfen bana para verin diye inleyen kod bu... bu kodun çağrıldığı adreslere bakarsak en yakın adres 0049E440.. bi bakalım burda neler var biraz yukarı çıkarak buraya

    ulaşabiliriz yada Shift+F12 tuşuna basarak adresi buraya yazabiliriz

    ****************************************W32Dasm*******************************************

    :0049E3FD 8D55BC lea edx, dword ptr [ebp-44]

    :0049E400 E89BFDFFFF call 0049E1A0-------------------------------------->Serial ı hesapla

    :0049E405 FF75BC push [ebp-44]

    :0049E408 8D45EC lea eax, dword ptr [ebp-14]

    :0049E40B BA06000000 mov edx, 00000006

    :0049E410 E84F6AF6FF call 00404E64-------------------------------------->Serial ı şekillendir

    :0049E415 8D45E8 lea eax, dword ptr [ebp-18]

    * Possible StringData Ref from Data Obj ->"\System32\spool\drivers\w32x86\2\riched20.dll "

    ->"SetActiveEditControlFont, Arial, "

    ->"30"

    |

    :0049E418 BA84E74900 mov edx, 0049E784

    :0049E41D E86267F6FF call 00404B84

    :0049E422 8D55B4 lea edx, dword ptr [ebp-4C]

    :0049E425 8B45FC mov eax, dword ptr [ebp-04]

    :0049E428 8B8004030000 mov eax, dword ptr [eax+00000304]

    :0049E42E E83151FAFF call 00443564

    :0049E433 8B55B4 mov edx, dword ptr [ebp-4C]------------->Bizim Sallama Serial

    :0049E436 8B45EC mov eax, dword ptr [ebp-14]-------------->Gerçek Serial

    :0049E439 E8A26CF6FF call 004050E0

    :0049E43E 85C0 test eax, eax---------------->Karşılaştır

    :0049E440 0F849A010000 je 0049E5E0------------------->Serial yanlış ise 0049E5E0' a zıpla

    :0049E446 8B45FC mov eax, dword ptr [ebp-04]

    :0049E449 8B8004030000 mov eax, dword ptr [eax+00000304]

    :0049E44F 33D2 xor edx, edx

    :0049E451 E83E51FAFF call 00443594

    :0049E456 8D45EC lea eax, dword ptr [ebp-14]

    :0049E459 E88E66F6FF call 00404AEC

    :0049E45E 6A00 push 00000000

    * Possible StringData Ref from Data Obj ->"Registration Success!"

    |

    :0049E460 68D8E74900 push 0049E7D8

    * Possible StringData Ref from Data Obj ->" Thank you for your support."

    |

    :0049E465 68F0E74900 push 0049E7F0

    :0049E46A 8B45FC mov eax, dword ptr [ebp-04]

    :0049E46D E896B8FAFF call 00449D08

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

     

    Sizinde tahmin ettiğiniz gibi 0049E440 satırındaki je (jump equal) yi, jne (jump not equal) yaparsak program yanlış serial da adrese zıplamıcak, kod akışına devam edicek peki aşağıda ne var “Registration Success!”

    “ Thank you…” falan, eee ne diyelim teşekküre değmez ne zaman istersen :)

    Her şey ii hoşta kodu nası değiştiricez, tabiki Hiew le, başka hex editor olmazmı… Hayır olmaz!…. Heiw Cracker lar için hazırlanmış özel bi hex editor :-p, Tamam biliyorum yemediniz ama yinede Hiew i kullanmanızı tavsiye ederim. Microsoft un adam akıllı tek ürünü olan Ms-Dos da çalışıyor programları hem hexadecimal hemde assembly olarak inceleyebiliyosunuz. Eğer Windows Windows illede Windows diyorsanız WinHex i tavsiye ederim disk ve memory okuma özelliği var, neyse dosyayı hex editörle açın ve W32Dasm de 0049E440 adresinin üstündeyken W32Dasm penceresinin en altında yazılı olan Offset adresine yani 0x0009D840 ‘e gidin (Heiw için: F3 tuşuna basın ve adresi yazın diğer hex editörlerde menüden GoTo diyin.) ve ordaki 84 değerini 85 ile değiştirin. Artık program yanlış serialı kabul edicektir Karşılaştırmayı değiştirmek yerine bu satırları nop lasakda olurdu(nop: no operarion) bunu için :0049E440 adresindeki 0F849A010000 kodunu 909090909090 ile değiştirebilirsiniz

    W32Dasm de “Thank you…” nun biraz altına bakarsanız

    * Possible StringData Ref from Data Obj >"\Software\Microsoft\Windows\CurrentVersion\IPSec"

    Yazan bi bölüme rastlarsınız. Program register olunca buraya bazı anahtarlar açıyor Eğer bu anahtarları regeditden siz oluşturursanız yada bunu yapan bi program yazarsanız windriverghost programına hiç müdahale etmeden lisanslı olarak çalıştırabilirsiniz.

     

     

    Artık program girdiğimiz yanlış serialı kabul edicek iide doğru serial neydi?

    Şimdide biraz softice ile uğraşalım Softice nın nasıl kullanıldığın anlatan zibil gibi yazı var. Yok şunu yapın yok benim winice.dat ımı alın hayır benimkini alın Nerdeyse yakında winice.dat için kampanya başlatıcaklar “bi winice.dat alana şizofren bi cracker bedava…” bu yüzden ben bu konulara girmiicem… ama siz benim winice.dat ımı alın :)

    (Benim gözlemlediğim kadarıyla sanırım bu furyayı MR.Stop abimiz başlatmıştı ama o hem bu işin kurduydu hemde bişeyler öğretmek için çabalıyodu ..öyle sanıyorumki o dağıtılan winice.dat ların çoğu Mr.Stop a aittir :) Ona saygım sonsuz…)

    **

    Programı orijinal haline getirin ve register etmişseniz regedit den az önce söylediğim kayıtları silip lisansı kaldırın Programı çalıştırın kullanıcı adı kısmına Lizard, serial kısmına sallama bişeyler yazın register tuşuna basmadan önce CTRL+D tuşuna basarak soft ice a geçin ve bpx GetWindowTexta yazarak GetWindowTexta apisine breakpoint koyun (Windowsun penceredeki bi yazıyı okumak için kullandığı api) ve x komutunu vererek softice dan çıkın, register tuşuna basınnn… ne oldu…. hiç bişe!!! Hehhee, olsun eliniz alışsın, softice sın bu apiyi yakalamaması pek şaşırtıcı değil (W32Dasm deyken Function->Expert Function menüsüne bakarsak programın user32.dll den getwindowtexta apisini hiç çağırmadığı görürüz)

    *****************GetwindowtText apisi hakkında spesifik bilgi*******************************

    The GetWindowText function copies the text of the specified window's title bar (if it has one) into a buffer. If the specified window is a control, the text of the control is copied.

    GetWindowText(

    HWND hWnd,// handle of window or control with text

    LPTSTR lpString,// address of buffer for text

    int nMaxCount // maximum number of characters to copy

    );

    *****************Alıntı: Windows SDK*****************************************************

    Aynı işlemleri tekrar uygulayın ama bu sefer bpx hmemcpy komutunu verin, softice dan çıkıp Register tuşuna basın işşteee softice ekranı tokat gibi yüzümüze çarptı, şimdi karşımızda abuk sabuk şeyler var, serialın hesaplanmasına daha çok var nerdenmi biliyorum… solda yazan adrese bakın XXXXX, bizim araştıracağımız muhtemel kodların adresi neydi 0049XXXX biraz F12 yaparak sonlara doğruda F10 ile kodları takip ederek arada bi acaba burasımı diye işkillenip d eax d edx falan yazarak (softice ile ilgili bi yazı okuyun) doğru adresi bulursunuz. Doğru adres nemi, zaten W32Dasm de bunu bulduk 0049E439. Softice da bu satırın üstündeyken d edx yazarsak data penceresinde sallama serialı, d eax yazarsak gerçek serialı görürüz. Eğer 0049E400 Adresi üzerindeyken F8 ile çağırılan yere giderseniz serialı oluşturan kodlarla karşılaşırsınız

    *******Eğer doğru adresi takriben biliyorsanız direk bu adresede breakpoint koyabilirsiniz misal ben hmemcpy apisine breakpoint koyup softice ekranıyla karşılaştığımda 0049XXXX gibi bi adrese gelene kadar F12 tuşuna bastım daha sonra bc * diyerek koyduğum durak noktalarını (breakpoint leri ) temizledim sonra bpx 0049E3EF diyerek bu adrese break point koydum (bu adres kafamı kurcalıyodu ama serial daha öncede dediğim gibi 0049E400 da şekilleniyormuş siz direk 0049E439 adresine (gerçek serial eax’e atandıktan sonra) break point koyarak farklı kullanıcı adları girip d eax yazıp Sotice yi keygen gibi kullanabilirsiniz :) )**********

    username: Lizard

    serial :WDW212228-4C697A617264

     

    Artık doğru serialı biliyoruz iide bu nasıl şekilleniyor

    Serialı bulmanın daha zahmetsiz bi yolu var mı diye memspy programını çalıştırdım (memspy hafızadaki değerleri okumaya yarayan bi program) winDriverghost a sallama bi serial yazıp memspy ile programın hafızaya attığı değerlerin içinde Lizard ı arattım ve hemen altında serial karşıma çıktı 4C697A617264. iide devamı nerde? Hafızada yok

    Aklıma iki açıklama geldi

    1-Serial ın 2 kısmı da ayrı ayrı hesaplanıyor ve sonra birleştiriliyor ( SERIAL:=serial1 + ’-‘ + serial2) programcı SERIAL ‘ı hafızdan hemen kaldırmış serial1 ide kaldırmış

    ama serial2 yi unutmuş…. Nası teori ama Dallas gibi (tabiki böyle olmamış :))

    2- Serialın 1.kısmı bi sabit (bağımsız) kullanıcı adı ne olursa olsun hep aynı şey geliyor.

    Nitekim farklı kullanıcı adları deneyerek soft ice dan hesaplanan seriallara bakarsak hepsinin WDW212228 ile başladığını görürüz. Geri kalanı ise 0049E400 adresinde şekilleniyor buradan çağırılan adrese giderseniz işler biraz dallanıyor buradanda çağırılan başka adreslerde var, eğer assembly bilginiz varsa softiceninde yardımıyla serialın nası oluştuğunu anlarsınız(serial oluşturma mantığını anlatıcam)(size assabmly anlatamam ama yazının sonunda bazı yol göstermeler yapıcam) Burayı çok kurcalamadım ama anladığım kadarıyla 0049E410 adresinde ise bu oluşturulan kod WDW212228 ile birleştirilip gerçek serial oluşturuluyor…

    PROGRAMIN SERIAL OLUŞTURMA MANTIĞI:

    Kullanıcı adını karakter karakter oku

    Bu karakterlerin ascii kodlarını al (ascii: american standart code for information interchange)

    Bu ascii kodlarını 2 digitde hexadecimal moda yaz

    Kullanıcı adı :             L        i        z        a        r        d

    Ascii karşılıkları:        76    105     122     97     114    100

    Hexadecimal(2 digit) 4C      69      7A      61      72      64 ( üstdeki satırda bulunan sayıların 16’lık sayı tabanındaki karşılıkları)

    Örnek: 61 ->97   6*16+1= 97 ;         4C -> 76    4*16+C=76 ( A:10, B:11, C:12, D:13, E:14, F:15 *bu yüzden hex editörlerde gördüğünüz en büyük harf “F” dir.)

    Elinizde Programlama dili varmı bilemiyorum bu sebeble hepinizin deneyebileceği cok basit bi kod vericem

    '-----------------------------buradan kes------------------------------

    giris = InputBox("Kullanıcı Adını girin", "WinDriver Ghost Enterprise Edition 2.05", "Lizard")                                         Serial = "WDW212228-":For i = 1 To Len(giris):Serial = Serial + Hex(Asc(Mid(giris, i, 1))):Next                                  ekran = InputBox("Serial:", "UserName:" + giris, Serial):MsgBox "cracked by Lizard"

    '-----------------------------buradan kes------------------------------

    yukarıdaki satırları not defterine yapıştırın ve dosyayı Keygen.vbs olarak kaydedin (kayıt türü olarak” Tüm dosyalar” ı seçmeyi unutmayın)çift tıklayıp çalıştırın(bu kod Visual Basic dilinde yazılmıştır Eğer Vbs uzantılı dosyaları çalıştırmakta problem yaşıyorsanız Ms Office Word de boş bi belge oluşturun ALT+F8 e bastığınızda çıkan ekranda makro adı olarak keygen yazın ve oluştur deyin yukarıdaki kodları karşınıza çıkan VBA ekranındaki Sub Keygen() ile End Sub arasına yapıştırın sonra kod üzerinde herhangi biyere tıklayıp F5 tuşuna basın *aşağıdaki linkde verdiğim programları Delphi de yazdım)

    Yol gösterme:

    ***0049E400 adresi gökten zembille inmedi peki serialın burada hesaplandığını nası anladım….. 0049E43E adresindeki test eax, eax karşılaştırmasından önceki her call şüphelidir. gerçek serial ın eax e atandığı :0049E436 8B45EC mov eax, dword ptr [ebp-14] satırının Soft ice da üzerinde iken satırın hemen sonunda SS: 00079F1F0= 00DE3308 yazdığını görürsünüz..(SS: Segment Register’idir Stack Segmentinin başlangıç adresini bildirir) Şimdi soft ice a d 00DE3308 yazın, işte gerçek serial aslında burada tutuluyor sonradan bu adresdeki değer eax e atanıyor şimdi bakalım 00DE3308 e serial nerde yerleştiriliyor Bunu anlamak için 0049E43E 85C0 test eax, eax satırının bi kaç call öncesi olan 0049E3F5 adresine break point koyalım soft ice den çıkıp sallama bi kullanıcı adı ve serial ile programı register etmeye çalışalım 0049E3F5 adresi okundu ve soft ice kesime gitti şu anda call 00443564 satırının üzerindesiniz burada iken d 00DE3308 komutunu verin, güzelll serial hala şekillenmemiş yani geç kalmamışız, F10 ile bu satırı geçin ve tekrar 00DE3308 adresinin içeriğine bakın hala şekillenmemiş demekki aradığım yer burası değil… F10 ile bi kaç satır daha geçin ve call 0049E1A0 satırını geçtikten hemen sonra tekrar 00DE3308 ‘in içeriğini kontrol edin.. BINGO serial burada şekilleniyoooo!.. (0049E400 adresine break point koyudunuzda hiç bişe olmuyosa: hmem cpy apisine break point koyun soft ice ile tekrar karşılaştıkdan sonra 004XXXXX gibisinden bi adrese ulaşana kadar F12 tuşuna masın sonra bpx 0049E400 komutunu verin)

    ***Softice hakkında bulabildiğiniz kadar kaynak okuyun ama Softice ın kullanımı hakkındaki en güzel kaynak Softice ın kendisi. Mutlaka Softice da iken F1 tuşuna basın ve yardımı inceleyin

    ***assabmly dili hakkında bilgi sahibi olabilmek için HelpPC 2.10 dan faydalanabilirsiniz

    ***Windows SDK yı Okuyun

    ***keygen ve patch hazırlayabilmek programlama dili bileniz gerekir tercihen Delphi ama VB de işinizi görür ( Delphi VB ye göre daha kontrollü ve daha hızlıdır ama

    keygen ve patchlerde hız ve kontrole ihtiyacınız yok. VB çok daha basittir hiç bilmiyosanız bile biraz uğraşmayla bikaç saatte patch yazıcak kıvama gelirsiniz)

    ***WinDriverGhost programını, hazırladığım Keygen i, Registry den lisans kontrolü yapan, programı patch leyip, patch ini kaldıran programı,bu dokümanın html halini, vbs (Visual Basic Script) dosyasını ve program dosyasının unpack li halini aşağıdaki LINK de verdim!

    ***Crack işlemleri için kullanılan programların çoğunu exetools dan bulabilirsiniz

    *** Hazır Eliniz deymişken bu programı biraz daha inceleyin Invalid Registration Code ekranı başka nerelerden çağrılıyor kullanıcı adı olarak DiSTiNCT yazdığımızda doğru serialıda yazsak program neden register olmuyor,program kullanımı 15 günle sınırlı bunu saymasını engelleyebilirmiyiz falan… maksat eliniz alışsın

     

    Bu dökümanda kullanılan bazı asaembly komutlarının ve segmentlerin (register ların) açıklaması

    Sonradan verilere erişim sağlanabilmesi için hafıza bloklara ayrılmıştır, lokasyonlarıda içeren büyük hafıza bloklarına segment adı verilir. Daha iyi anlayabilmeniz için bunu bi örnekle açkliim: memory i içerisinde çok sayıda belgenin bulunduğu bi evrak odası gibi düşünün işte bu odada bulunan dolapları segmentlere, dolapların raflarınıda lokasyonlara benzetebiliriz, böylelikle 300. dolaptaki 45. raf gibisinden bi adres belirterek aradığımız veriye sonradan ulaşabiliriz. Aynı bu örnekte olduğu gibi her segment ve lokasyonunda bi adresi vardır. Bu adresler 16 bitlik sayılarla ifade edilir(aslında segment adresleri 20 bittir ama son dört biti 0000 şeklindedir. Bu yüzden belleklerin boyutları 16 nın katları şeklindedir, talep gelirse ve vaktim olursa bunun hakkında daha ayrıntılı bi yazı hazırlarım)Aslında bizim burda uğraştığımız segmentler RAM üstünde değildir CPU nunda içindede bi hafıza bloğu vardır. Cpu tarafından işlenicek veriler bu hafızaya aktarılır, Cpu bunu işler ve sonucu tekrar bu hafızaya yazar Cpu nun memorisinde bulunan segmentlere “Register” adı verilir ve toplamda 14 tane register vardır. Yazı falazla uzadığı için bunların hepsinden bahsetmicem sadece registerların genel özelliklerinden bahsedicem:

    X ile biten registerler (eax,edx.. vb): Bunlar data registerleridir çarpma,bölme,giriş,çıkış işlmelerinde kullanılır (ecx sayaç register ıdır, ebx pointer olarak kullanılabilir)

    P ve I ile biten registerler (sp,di,….vb): (P)ointer ve (I)ndex register larıdır data registerları gibi kullanılabilirler ama asıl amaçları lokasyonların adreslerini barındırmaktır.

    S ile biten registerler(ss,ds…vb):Segment registerlarıdır, segment adreslerini içerir

    *Bunların dışında özel bi register olan IP registeri vardır çalıştırılıcak olan bir sonraki komutun offset adresini içerir aslında bu bir Pointer registeridir.

    Dökümanda adı geçen komutlar:

    Mov: kısaca, bi verinin başkabi yere transferi için kullanılır, verinin alındığı ve gönderildiği yerler bellek lokasyonu yada register olabilir

    Kullanımı: Mov alıcı,gönderici

    Ör: Mov eax, edx ‘edx deki veriyi eax e gönder

    Mov eax,[0035E010] ‘0035E010 adresindeki veriyi eax e gönder

    Xor: iki verinin kıyaslanması için kullanılır, karşılıklı bitler aynı ise 0 farklı ise 1 sonucu ürtetilir.

    Örnek veri tablosu:

             a = 1 0 1 1 0 1 0 1

             b = 1 0 0 1 1 1 0 0

    Xor a,b = 0 0 1 0 1 0 0 1

    *Xor komutu genellikle verileri sıfırlamak için kullanılır

    Ör: Xor eax,eax (karşılıklı bitler eşit olduğu için eax sıfırlanır)

    Push: Stack’a veri yerleştirmek için kullanılır.

    Kullanımı: Push gönderici

    Ör: Push eax

    Push 0049E7F0 ( verinin yerleştiği stack adresi Sp registerinde tutulur )

    Call: Alt program çağırır. Call ile belirtilen adrese gidilir ve ordaki kodlar icra edilir sonrasında tekrar ana programa dönülür, kod akışı kaldığı yerden devam eder(ana programın segment adresi Sp ye atılır)

    Lea: Değişkenin offset adresini Register a atar

    Kullanımı: Lea alıcı,değişken

    Test: iki değeri karşılaştırır, bu iki değer birbirine eşitse zero flağı 1 değilse 0 olur (yukarıda anlatmadığım PSW adında özel bi register daha vardır bu registerin 6. biti zero flağıdır)

    Jz,Je(jump zero, jump equal): zero flağı 1 ise istenilen adrese dallanır,0 ise dallanma olmaz ve kod akışı devam eder

    Örnek: text eax,edx ‘ eax edx e eşit ise zero flağı 1 olur değilse 0 olur

                Jz 003432E1 ‘zero flağı 1 ise (eax=edx) 003432E1 adresine atlanır.

    *FAQ: Program kodlarına şimdi bidaha bakarsak 0049E43E adresinde serial karşılaştırması olarak tanımladığım     text eax, eax komutunun text eax,edx olması gerekmezmiydi?( “Eveett” dediğinizi duyar gibiyiimmm)

    Lâkin,ama,fakat bu kod yürürlüğe sokulduğunda eax in değeri seriala eşit olmuyor çünkü bunun hemen öncesinde call 004050E0 komutu var… Aslında serial burda karşılaştırılıyor bu karşılaştırmanın sonucuna göre eax in değeri 1 yada 0 oluyor… test eax, eax ve je 0049E5E0 komut dizesinde ise eax reset (0) olmuşmu diye bakılıyor…

    Valla kendi yazım diye söylemiyorum ama güzel oldu beee…, elimden geldiğin kadar açıklayıcı olmaya çalıştım kafa kurcalıyan bi nokta bıraktığımı zammetmiyorum, bi programcı olarak insanları cracking e heveslendirmek ne kadar akıl kârı onuda bilemiyorum…. ne diye bilirim, google dan serial arayacağınıza önce kendiniz kırmaya çalışırsınız en azından programa para vermeseniz bile hakkını verir, değerini bilirsiniz; dünyada paradan daha önemli şeylerde var mesela…. şeygibi….ıııııı…. ımmm….. hani bu oluyoya… şeye beziyo.. hani yeşil, uçuyo hani tamam….. aklıma bişe gelmedi ama aklıma gelmemesi olmadığı anlamına gelmez, vardır,mutlaka vardır, olmalı,lütfen olsun.

     

    *****Adı geçen programların linki: http://rapidshare.com/files/61573890/WDGtool.rar

    Bİ PROGRAMI SEVEREK KULLANIYORSANIZ, O PROGRAM İŞİNİZİ KOLAYLAŞTIRIYORSA ONU SATIN ALIN!

    Umarım öğretici olmuştur, kendinize iyi bakın

    Saygılarımla LIZARD….

    E-mail: oniki_dev_adam_ve_yedi_cuceler@hotmail.com

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EntelKoylu
    EntelKoylu's avatar
    Kayıt Tarihi: 13/Eylül/2005
    Erkek
    ii paylaşım

    ANDY // Burası mezopotamya, küresel oyunun bumerang cehennemi. Tanrı bile dünya düzeni için peygamberlerini hep buraya göndermiş. Çünkü burası aslında yeryüzü cennetiymiş. Daha Fazla Bilgi İçin Profilimi İnceleyiniz...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Lizard386
    Lizard386's avatar
    Kayıt Tarihi: 09/Ekim/2007
    Erkek
    saol azrail inan bu dökümanı hazırlamak programı kırmaktan daha uzun sürdü (Link e gitmeyi unutma)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    fivestar
    fivestar's avatar
    Kayıt Tarihi: 30/Haziran/2007
    Erkek

    Videoo :) da olsa hem daha kısa yazardın hemde daha guzel olurdu ama emegıne saglık cok sagol


    Ağırdır sevmelerim her yürek taşıyamaz, büyüktür umutlarım her omuz kaldıramaz
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Lizard386
    Lizard386's avatar
    Kayıt Tarihi: 09/Ekim/2007
    Erkek
    fivestar bunu yazdı:
    -----------------------------

    Videoo :) da olsa hem daha kısa yazardın hemde daha guzel olurdu ama emegıne saglık cok sagol


    -----------------------------
    Video aslında ii fikir hem oyunculuğumda fena diildir belki sonrasında dizi teklifi bile alırım:)  önerin için saol fivestar bundan sonraki çalışmamı video şeklinde hazırlayabilirim

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek
    Dost güzel paylaşım. Keşke videoya çekseydin. Birazını okudum ama :)

    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EmotioN
    EmotioN's avatar
    Kayıt Tarihi: 11/Aralık/2005
    Erkek
    çok kral olmuş..kilavyenle mauzuna sağlık :)

    bazıları için karanlık , korkunun kaynağıdır.bazılarınında tek bildiği şey..
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Lizard386
    Lizard386's avatar
    Kayıt Tarihi: 09/Ekim/2007
    Erkek

    arkadaşlar biraz uzun bi yazı olduğunu biliyorum ama http://rapidshare.com/files/61573890/WDGtool.rar dosyasının içinde dökümanın html hali var, renklendirme falan olduğu için daha anlaşılır üstelik deplhide yazdığım keygeni ve sizlerin olayı daha iyi anlayabilmesi için not defterinde hazırladığım keygenide (dosyayı çift tıklayıp çalıştırabilir yada not defteri ile açıp kodları inceleyebilirsiniz) dosyanın içine koydum

      hemm ben uzun süredir cracking e ara vermiştim şimdi tekrar biraz uğraşiim dedim bizim zamanımızda öylee video falan yoktu internet o kadar yavaştıki bi döküman bulduğumuz zaman çabuk açılsın diye içinde resim olmaması için dua ederdik vaybee ne zor günlerdi :) bak şimdi anılarım depreşti...  o zamanlar ekmek karneylendi çok zorduu çookkk :)

Toplam Hit: 4373 Toplam Mesaj: 8