[ASM] - 1299 Knight OnLine Hackshield Kaldırma

'ASM Paylaşım' forumunda 111Mutay tarafından 10 Aralık 2012 tarihinde açılan konu

  1. 111Mutay

    111Mutay Guest

    Evet arkadaşlar, bu konumuzda sizlere orjinal 1299 KnightOnLine.exe'sinden hackshield nasıl kaldırılır onu izah edeceğim.



    Öncelikle, orjinal exemizi unpackliyoruz. Unpack için yeterli bilgiye sahip olmayan arkadaşlar BURADAN detaylı anlatıma ulaşabilirler.



    Exeyi unpackledik. Sırada hackshieldi adım adım kaldırmak var. Exemizi Ollydbg ekranına sürüklüyoruz.



    [​IMG]



    Exemiz yüklendi. CTRL - G tuş kombinasyonu ile 64B9B0 adresine gidiyoruz.



    [​IMG]



    Bu adres, oyunun ana voididir. Yani diğer adıyla entry point. Biraz inceleyelim.



    [​IMG]



    Resimde de izah ettiğim gibi, void içerisinde mutex kontrolü var. Oyunun iki kere açılmasını engelleyen şey bu mutextir*. Mutex kontrolünden dönen değer 0'sa yani mutex bulunamadıysa, oyun başlangıç işlemine devam edilir. 64B9EA adresinde de gördüğümüz gibi, mutex değeri 0B7(183) yani ERROR_ALREADY_EXISTS kodunu döndürmediyse, bir sonraki voide atlıyor. Bir sonraki voidi inceleyelim. (64BA06)



    * 64B9EA adresindeki JNZ değerini JMP yaparak sınırsız client açabilirsiniz.



    [​IMG]



    Resimde de izah ettiğim gibi, bu etapta client HSUpdater.exe'yi çağırıyor ve çağırma işlemi başarılıysa açılışın bir sonraki adımına ilerliyor.(64BA19)



    Burada yapacağımız şey, HSUpdater'i çağıran satırı NOP'lamak ve JNZ(Jump if Not zero)'yi JMP(unconditional jump)'a çevirmek. Yapalım.



    [​IMG]



    Gördüğünüz gibi, HSUpdater'i çağıran voide giden call'ı NOP'ladık ve true-false kontrolü yapan JNZ Conditional Jump'unu JMP ile değiştirdik. Şimdi ise yine CTRL-G tuşuna basarak 5F6C1F adresine gidiyoruz.



    [​IMG]



    Adresimizi yazdık, OK tuşuna basıyoruz.



    [​IMG]



    CreateMainWindow voidinin içerisindeki bir kod satırındayız. Burada HackShield'in çalışıp çalışmadığını kontrol eden EhSvc.dll'yi çağıran voide giden bir call var. 5F6C1F'den 5F6C26'ya kadar NOP'luyoruz ve 5F6C28 adresindeki JNZ'yi JMP olarak değiştiriyoruz.



    [​IMG]



    Gereken işlemleri yaptık; son bir aşamamız kaldı. Oyunun general keystroke handler voidinin içerisine yerleştirilmiş bir kontrol daha var. Onu da etkisiz hale getirmemiz gerekiyor. CTRL - G tuş kombinasyonu ile 5F6CFD adresine gidiyoruz ve 5F6CFD ile 5F6D04 arasını NOP'luyoruz.(resimde 02 ve 04'ü noplamamışım, siz noplayın.)



    [​IMG]





    Exemizi hackshield'ten arındırdık. Son aşama olarak kaydedelim.



    [​IMG]



    [​IMG]



    HackShield'siz exeniz hayırlı olsun :)



    [​IMG]



    Yardımcı olması dileğiyle, daha değişik konulardaki ASM yardım isteklerinizi özel mesaj yoluyla iletebilirsiniz.



    PENTAGRAM / 10.12.2012















     
  2. biktimmk

    biktimmk New Member

    adamın dibisin çok teşekkür ederim.



    ---------- Yorum eklendi 20:09'da ---------- Önceki yorum 20:02'da ----------



    bana programlama öğretsene panpa :D
     
  3. 111Mutay

    111Mutay Guest

    Ders vermem söz konusu değil ama sorduğunuz soruları yanıtsız bırakmam.
     
  4. ykpikacu

    ykpikacu New Member

    Anlatımı bu kadar hızlı anlatabileceğinizi düşünmemiştim, elinize sağlık ve aynı zamanda isteğimi dikkate aldığınız için teşekkür ederim.



    Umarım herkese yararlı olur...
     
  5. Rainmaker

    Rainmaker New Member

    Cevap: [ASM] - 1299 Knight OnLine Hackshield Kaldırma



    Paylaşım için teşekkürler.
     
  6. hayalc

    hayalc New Member

    Cevap: [ASM] - 1299 Knight OnLine Hackshield Kaldırma



    Anlatım güzel olmuş. Eline sağlık
     

Bu Sayfayı Paylaş