folder Tahribat.com Forumları
linefolder Assembly - Reverse Engineering
linefolder Reverse Engineering Sorularınız



Reverse Engineering Sorularınız

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MoNZa
    MoNZa's avatar
    Kayıt Tarihi: 05/Haziran/2007
    Erkek

    Herkese selamlar !

     Firex hocam öncelikle özverili şekilde sorularıma teveccüh gösterme nezakenitiniz için teşekkür ederim.

    Bazı sorularım olacak ama bu sorunlar sonuçta dönüp dolaşıp OLYDbg yi bir türlü etkili kullanamamaya dayanıyor. İnşallah bu konuda ki yazınız eminim bir çok insanın derdine derman olacaktır. Zira nette o kadar çok bilgi çöplüğü varki bu konuda..Herkes bir yerlerden ve işin garibide hep aynı yazıyı copy/paste yaparak sunmuşlar hiç biryerde sizin yazılarınız kadar özgün bilgiler mevcut değil...

     

    Sorum şudur :

    http://img95.imageshack.us/my.php?image=regnr5.jpg

    Resimde görüldüğü üzere procodur başlangıcındayken dediğiniz gibi Select Command diyerek yada stack penceresinde ilgili referans alınan call lar yada jump lar listeleniyor.Ancak çoğu kez tecrübe etmişimdir bunların hepsi listelenmesine karşın rev.eng. içlerinden sadece bir yada bir kaçı doğrudan sizi sonuca ulaştırabiliyor.İşte sonuca götüren bu bir yada birkaç call ı nasıl tespit edebiliriz.Bazen bu call sayısı 100 leride bulabiliyor mesela o zaman nasıl işlem yapabiliriz ? Teşekkürler...

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    inside
    anonim6918524
    anonim6918524's avatar
    Banlanmış Üye
    Bilgi/Destek Madalyası Üstün Hizmet Madalyası
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    Breakpoint koyarak bulabilirsin.6 tane call varsa ve bizim için önemli olan programda register butonuna bastığımızda gerçekleşense hepsine breakpoint koyarsak ne yapacak.Butona tıkladığımızda program akışı orada bizim için gerekli olan callda duraklayacak.Bizde bizim için gerekli olanı bulmuş olacağız vs.Daha birçok ihtimal olabilir.

    Bu arada nasıl hepsine aynı anda breakpoint koyarım diyorsan.Prosedürün giriş noktasında.Zaten gözükür local calls from... Orada sağ tıklayıp view call treeye tıkla.Karşına pencere gelecek pencerede sağ tıklayıp set breakpoint on every call dersen hiç uğraşmadan hepsine breakpoint koyarsın.


    λ
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    inside
    anonim6918524
    anonim6918524's avatar
    Banlanmış Üye
    Bilgi/Destek Madalyası Üstün Hizmet Madalyası
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek
    Diğer başlığı kilitledim.Bütünlük açısından soruları bu konuda soralım.

    ATO bunu yazdı:
    -----------------------------
    Firex Hocam Selamlar ! Memory Dump a BPX koyarak : Olyde girdigimiz sallama seriali bulup winhex gibi onu okumaya basladığı yeri direk bulabileceğimiz gibi bir şey duydum.Bu konu hakkında bilgi verirmisiniz ? Teşekkürler...
    -----------------------------

    Bu sorduğun soru görecelidir.Programın kodlanış tarzına göre değişir.Serial numberı bütün olarak hafızaya yerleştiren program artık fazla kalmadı diyebiliriz.Amatör programcıların yaptığı birşey.Seri numarayı parçalara bölüp o şekilde karşılaştırma yapıyorlar yada kriptolayıp karşılaştırıyorlar.Bellek adresleri her zaman aynı olmaz.Oraya breakpoint koymak falan fazla işe yarar bir yöntem değil.

    λ
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MoNZa
    MoNZa's avatar
    Kayıt Tarihi: 05/Haziran/2007
    Erkek

    Başta Firex hocam olmak üzere herkese selamlar !

    Değerli hocam linkini verdiğim programı inceleyip keygen yapısı,koruması ve kontrolleri hakkında bir tutorial yazman mümkünmü ? O kadar program kırmama rağmen bunu alt edemiyorum.Çok farklı geldi bana oldukçada kastım bi o kadarda uykusuz kaldım bundan dolayı...Yardım edersen sevinirim saygılar..

    Koruması : Serial

    [code]Dl :

    http://www.aw-soft.com/wexsetup.exe[code]

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    inside
    anonim6918524
    anonim6918524's avatar
    Banlanmış Üye
    Bilgi/Destek Madalyası Üstün Hizmet Madalyası
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek

    Reverse Engineering konusundaki çabalarınızdan dolayı tebrik ederim.Şu an üzerinde çalıştığım bir projem olduğu için program hakkında tutorial yazmak için fazla vaktim yok malesef.Boş vaktimde ilk işim Ollydbg hakkında bir döküman yazmak olacak.

    Diğer bir konu verdiğiniz programa gece bir süre gözattım.Program packlenmemiş fakat güzel bir şekilde korunmuş.Programın string tablosunda "regname" "regkey" isimli registry değerleri ve hemen üstünde programcının yaptığı bir aptallık olan yol gösterici yazı "Please not pirate this software" gördüm :) Bildiğiniz üzere programı kayıt edince program registrye bakmakta daha sonra ona göre kısıtlımı yoksa full olarakmı açılacağına karar verir.Programın kaydettiği registry değerlerine bakmak bizim için daha önemlidir.Çünkü kullanıcının seri numara girmesine gerek kalmadan uygulama açılır.

    ctrl+n ile karşınıza çıkan tablodan registry apilerini aratarak önemli şeyler bulabilirsiniz.Sizin programınıza gelince programın register olduğunu belirleyen regname ve regkey anahtarlarının olduğu yere gözattım.Bunlardan program içerisinde iki tane mevcut.Yolculuğa 004C9058'den başlıyoruz.Bir üst kademede olan anahtarların olup olmadığını kontrol ediyor ve karşılaştırmayla alt prosedüre iniyor.Alt prosedürde değerleri kontrol eden bir sürü zıplama noktası göreceksiniz.Bu zıplama noktalarından uzun olanlar yani geçersiz olduğunu anlayıp sizi prosedürün sonuna atanları nop yaparak geçin.Prosedürün sonlarına doğru tekrar regname ve regkey değerlerini göreceksiniz program akışı bunların üstünden geçsin.Daha sonra ise tüm yaptıklarınızı kaydedin.Registryde ayrıca o adrese regname ve regvalue değerlerini expandable string value olarak yaratın.

    Dilerseniz benim üzerinde çalıştığımada bakabilirsiniz.Hatta işi biraz ileriye taşıyıp keygende yazabilirsiniz.Fakat programı çok iyi analiz etmek gerek bu da çok vaktinizi alabilir.Keygenler hakkında yazdığım dökümanı inceleyebilirsiniz bu konuda.Programın Delphi olmasıda ayrı bir avantaj DeDe isimli programdan faydalanabilirsiniz.Bu konu hakkındada önceden döküman yazmıştım onada gözatabilirsiniz :)

    http://rapidshare.com/files/36207169/crack.rar.html


    λ
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MoNZa
    MoNZa's avatar
    Kayıt Tarihi: 05/Haziran/2007
    Erkek

    Firex Hocam Selamlar !

    Serialini bulduğum bir program var ben patch yapmak istiyorum.Program açılışta Registerye bakıyor ve bunuda 3 adet call ile kontrol ediyor.Ancak bu call dönüşleri Al=00 yani demo 01 yapmama rağmen kayıtllanmıyor nedeni ne olabilir ? Birde işleriniz hafiflemiştir umarım olly ile ilgili yazınızı sabırsızlıkla beklediğimizi bilesiniz..Saygı ve kolaylık dileklerimle.

     Patch yapamadığım program :

    h**p://amust-registry-cleaner.amust-registry-cleaner-inc.qarchive.org/

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    inside
    anonim6918524
    anonim6918524's avatar
    Banlanmış Üye
    Bilgi/Destek Madalyası Üstün Hizmet Madalyası
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek
    ATO bunu yazdı:
    -----------------------------

    Firex Hocam Selamlar !

    Serialini bulduğum bir program var ben patch yapmak istiyorum.Program açılışta Registerye bakıyor ve bunuda 3 adet call ile kontrol ediyor.Ancak bu call dönüşleri Al=00 yani demo 01 yapmama rağmen kayıtllanmıyor nedeni ne olabilir ? Birde işleriniz hafiflemiştir umarım olly ile ilgili yazınızı sabırsızlıkla beklediğimizi bilesiniz..Saygı ve kolaylık dileklerimle.

     Patch yapamadığım program :

    h**p://amust-registry-cleaner.amust-registry-cleaner-inc.qarchive.org/


    -----------------------------

    Ato nerelere kayboldun uzun süredir :) Forumda bir sen varsın bu konulara ilgi duyup yazan zaten.Başkalarıda varsa onlarda gizlemesinler kendilerini.

    Şimdi program açılışta registry'e bakıyor.Fakat programın korunma tarzına göre daha komplike birşeylerde olabilir.Yani registryde satın alan kişi,seri numara kayıtları duruyormu veya "registered"(registryde böyle bir değer yaratıyorsa) değerinde "1" yazıyormu diye bakarak programı full haline sokmak yerine.Registryden satılan alan kişiye göre tekrar seri numara hesaplatıp bunuda registryden okuduğu değerle karşılaştırıyordur.Ayrıca AL'nin 01 olması orası için farklı anlamlar taşıyorda olabilir.Registryden tüm kayıtların başarıyla okunmuş olması,eksik veri olmaması vs vs. Program orada registryi okuyup bilgileri aldıktan sonra bir bellek alanına atıyor ve daha sonradan bunları kontrol ediyor olsa gerek.Bunu tekrar tekrarda yapabilir.Programcı ne yaptıysa o.

    Olly ile ilgili dökümana gelince en kısa sürede o konuya el atacağım.Söz verdiysem borcumdur.Reverse Engineering çalışmalarınızda başarılar dilerim.

    λ
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MoNZa
    MoNZa's avatar
    Kayıt Tarihi: 05/Haziran/2007
    Erkek
    Teşekkür ederim hocam.Aslında soracak çok sorum var ama hepsini kendimi zorlayarak aşmaya çalışıyor her aklıma geleni sorarak değerli vaktinizi almak istemiyorum:) Ama dediğiniz gibi forumda reverse eng.konusuna olan ilgi benide üzüyor heleki çok güzel kaynaklar sunmanıza ve sizin gibi bir bilgi birikimine sahip birini barındıran bu forum bunu neden kullanamıyor anlam veremiyorum.Saygılar... 
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MoNZa
    MoNZa's avatar
    Kayıt Tarihi: 05/Haziran/2007
    Erkek

    Hocam merhaba yine ben :)

     

    Sözünü ettiğim programın serial hesaplaması yaptığı call da rutin sonunda AL=00 yapan kodu tespit ettim.

    MOV AL,BYTE PTR SS:[ESP+13] Bu komut AL=00 yapıyor..Bunu ;

    MOV AL,1 olarak değiştirince program full oldu..

    Ancak :):):)

    Sallama name ve keyi registery e yazmasına ve program full olmasına rağmen about ta :

    Costumer Name yazmakta açılışta registery okursa demoya düşer olmazsa istenilen isimde nasıl kayıtlanır ? Gerçi binary edit ile ilgili tutorialiniz var onuda değiştirebilirim ama başka yolu yokmudur ? Teşekkürler :)

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    inside
    anonim6918524
    anonim6918524's avatar
    Banlanmış Üye
    Bilgi/Destek Madalyası Üstün Hizmet Madalyası
    Kayıt Tarihi: 16/Temmuz/2005
    Erkek
    ATO bunu yazdı:
    -----------------------------

    Hocam merhaba yine ben :)

    Sözünü ettiğim programın serial hesaplaması yaptığı call da rutin sonunda AL=00 yapan kodu tespit ettim.

    MOV AL,BYTE PTR SS:[ESP+13] Bu komut AL=00 yapıyor..Bunu ;

    MOV AL,1 olarak değiştirince program full oldu..

    Ancak :):):)

    Sallama name ve keyi registery e yazmasına ve program full olmasına rağmen about ta :

    Costumer Name yazmakta açılışta registery okursa demoya düşer olmazsa istenilen isimde nasıl kayıtlanır ? Gerçi binary edit ile ilgili tutorialiniz var onuda değiştirebilirim ama başka yolu yokmudur ? Teşekkürler :)

    -----------------------------

    Tebrik ederim.Fakat Customer Name'in anlamı "Müşteri ismi"'dir.Yani programı kayıt etmeyle alakası yok.Müşterinin adı yazıyor sadece.Başka birşey kastediyorsanız binary edit olayını kullanın yada programda orayı bulunda.Temelli psikoya bağlamanın anlamı yok :) Bence binary edit yeterli.Çalışmalarınızda başarılar.

    λ
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MoNZa
    MoNZa's avatar
    Kayıt Tarihi: 05/Haziran/2007
    Erkek

    FireX bunu yazdı:
    -----------------------------

    ctrl+n ile karşınıza çıkan tablodan registry apilerini aratarak önemli şeyler bulabilirsiniz.Sizin programınıza gelince programın register olduğunu belirleyen regname ve regkey anahtarlarının olduğu yere gözattım.Bunlardan program içerisinde iki tane mevcut.Yolculuğa 004C9058'den başlıyoruz.Bir üst kademede olan anahtarların olup olmadığını kontrol ediyor ve karşılaştırmayla alt prosedüre iniyor.Alt prosedürde değerleri kontrol eden bir sürü zıplama noktası göreceksiniz.Bu zıplama noktalarından uzun olanlar yani geçersiz olduğunu anlayıp sizi prosedürün sonuna atanları nop yaparak geçin.Prosedürün sonlarına doğru tekrar regname ve regkey değerlerini göreceksiniz program akışı bunların üstünden geçsin.Daha sonra ise tüm yaptıklarınızı kaydedin.Registryde ayrıca o adrese regname ve regvalue değerlerini expandable string value olarak yaratın.

    -----------------------------

    Hocam  selamlar !

    Çok kastım bu programa hala bi sonuç alamadım dediğin adresten yola çıktım ama olmadı bi türlü :( adresler bazında az bi açıklama yaparsan çok sevinirim. Teşekkürler

Toplam Hit: 14045 Toplam Mesaj: 43