1
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
Exeyi unpackledik. Sırada hackshieldi adım adım kaldırmak var. Exemizi Ollydbg ekranına sürüklüyoruz.
Exemiz yüklendi. CTRL - G tuş kombinasyonu ile 64B9B0 adresine gidiyoruz.
Bu adres, oyunun ana voididir. Yani diğer adıyla entry point. Biraz inceleyelim.
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.
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.
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.
Adresimizi yazdık, OK tuşuna basıyoruz.
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.
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.)
Exemizi hackshield'ten arındırdık. Son aşama olarak kaydedelim.
HackShield'siz exeniz hayırlı olsun 🙂
Yardımcı olması dileğiyle, daha değişik konulardaki ASM yardım isteklerinizi özel mesaj yoluyla iletebilirsiniz.
PENTAGRAM / 10.12.2012
Öncelikle, orjinal exemizi unpackliyoruz. Unpack için yeterli bilgiye sahip olmayan arkadaşlar
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
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.
Exemiz yüklendi. CTRL - G tuş kombinasyonu ile 64B9B0 adresine gidiyoruz.
Bu adres, oyunun ana voididir. Yani diğer adıyla entry point. Biraz inceleyelim.
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.
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.
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.
Adresimizi yazdık, OK tuşuna basıyoruz.
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.
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.)
Exemizi hackshield'ten arındırdık. Son aşama olarak kaydedelim.
HackShield'siz exeniz hayırlı olsun 🙂
Yardımcı olması dileğiyle, daha değişik konulardaki ASM yardım isteklerinizi özel mesaj yoluyla iletebilirsiniz.
PENTAGRAM / 10.12.2012