<Ç0rumlu>
Ultra Üye
Bu yazımda sizlere X-Trap için hepimizin kurtuluşu, ilacı, hızır acili olan Bypass dll'inin kodlanma mantığından bahsedeceğim.
İnternette bunu anlatan bir yazı, kaynak vs. bulmak şuan imkansız. Ben de bu işe başlamak veya en azından mantığını öğrenmek isteyen arkadaşlarım için üreticilerle görüştüm, birsürü şey araştırdım ve hepsini kısaca bu yazımda birleştirdim.
İsterseniz yavaş yavaş konuya doğru bir giriş yapalım.
•
•
•
Öncelikle bu iş için bize gereken şeylerden biraz bahsedelim. Benim anlatmak üzere olduğum yöntem bu işin en kullanışlı ve basit yöntemlerinden biridir arkadaşlar. Fakat x64 işletim sistemleri için çalışmaktadır. Yani bu yazıyı referans alarak bir Bypass kodlamak istiyorsanız, işe Windows 7 x64 işletim sistemini kullanmakla başlamalısınız.
Daha sonra bize gereken iki program var:
-Cheat Engine
-Process Hacker
Programlarımızı kurduktan sonra işe başlamak için önümüzde bir engel kalmıyor arkadaşlar. İsterseniz şimdi neler yapmamız gerektiğine geçelim.
Öncelikle x64 sistemlerde XTrap Bypass işlemi nasıl yapılır onu öğrenelim. İki adım vardır arkadaşlar. Birinci adım XTrap'ın açık olan işlemleri yakalamasını engeller. Örneğin biz Cheat Engine programını oyunumuzla birlikte açtığımızda XTrap bizim Cheat Engine ile oyun üzerinde bir işlem yapmamızı beklemeden oyunu kapatır. Çünkü Cheat Engine açtığınızda niyetinizin ne olduğu az çok bellidir. İkinci adım ise Cheat Engine ile oyunun Memory'sine eriştiğimizde oyunun kapanmasını engeller. Yani ilk işlemi yapıp bıraksaydık Cheat Engine açtığımızda oyun kapanmayacaktı ama Cheat Engine ile oyun üzerinde herhangi bir değişiklik yaptığımızda XTrap oyunu kapatacaktı.
Şimdi bu adımları hayata geçirmek için neler yapmamız gerektiğini öğrenelim.
Sevgili arkadaşlarım 1. adımımızın ismi Process Name Detection Bypass'tır. Bu işlemi yapmamız için x64 bir sistemde yapmamız gereken şey System32'mizin içerisindeki kernel32.dll ve psapi.dll deki bir prosedürde değişiklik yapmaktır. Peki neden ? Çünkü XTrap açık olan işlemlerin isimleri vs. için kernel32.dll deki "K32EnumProcesses" prosedürüne ve psapi.dll'deki "EnumProcesses" prosedürüne başvurur. K32EnumProcesses'in açınımı Kernel32 Enumerating Processes'tir. psapi.dll Process Status Helper olarak da geçer. Bunu bildiğimize göre yapmamız gereken tek şey kernel32.dll'i açıp K32EnumProcesses'a ve psapi.dll'i açıp EnumProcesses'a bir jump attırmaktır. Burada işin içine kodlama giriyor arkadaşlar. Ben bypass'ların en güzel C++'ta kodlanabileceğine inanırım. Bunun için size kodları C++ şeklinde vereceğim. Ama AutoIT kullanan arkadaşlarımı da unutmayacağım tabi. Şimdi kodlarımıza bir bakalım.
C++ için :
Arkadaşlarım BYPASS isimli bir class tanımladıktan sonra bypass'ımızın ikinci admı için ProcessDetection isminde bir int tanımlıyoruz. İçini de şu şekilde dolduruyoruz :
Kod:
PHP:
int BYPASS::ProcessDetection()[/FONT][/B][/CENTER]
[B][FONT=Arial][CENTER]{
DWORD K32EnumAddr = (DWORD)GetProcAddress(LoadLibraryA("Kernel32.dll") ,"K32EnumProcesses");
DWORD EnumAddr = (DWORD)GetProcAddress(LoadLibraryA("Psapi.dll"),"EnumProcesses");
DWORD old;
VirtualProtect((LPVOID)K32EnumAddr,sizeof(K32EnumAddr),PAGE_EXECUTE_READWRITE,&old);
VirtualProtect((LPVOID)EnumAddr,sizeof(EnumAddr),PAGE_EXECUTE_READWRITE,&old);
memcpy((LPVOID)K32EnumAddr,(LPVOID)"\xC2\x0C\x00", 3);
memcpy((LPVOID)EnumAddr,(LPVOID)"\xC2\x0C\x00",3);
return 0;
}
Gördüğünüz gibi iki fonksiyonumuzu da 3 adet byte ile çarparak jump'ımızı attırdık. Öğrendiğim kadarıyla bu byte'lar bu işlem için sabittir arkadaşlar
NOT:ALINTIDIR DÜZENLEMESİ BANA AİT,SAĞLAM Bİ KAYNAK BULDUĞUM İÇİN PAYLAŞAYIM DEDİM.
NOT:ALINTIDIR DÜZENLEMESİ BANA AİT,SAĞLAM Bİ KAYNAK BULDUĞUM İÇİN PAYLAŞAYIM DEDİM.
Moderatörün son düzenlenenleri: