Bypass Kodlama Mantığı #1

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
<Ç0rumlu>
Ultra Üye
Katılım
19 May 2016
Mesajlar
1,546
Tepki puanı
135
Ödüller
10
Yaş
29
10 HİZMET YILI
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.
 
Moderatörün son düzenlenenleri:
Üye
Katılım
23 Ara 2016
Mesajlar
36
Tepki puanı
6
Ödüller
7
Yaş
30
9 HİZMET YILI
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.
Hocam eline sağlık anlatımını beğendim ama konuyu daha da açar mısın mesela ben hiç bir şey bilmiyormuşum gibi anlatsan, hatta bu kodları nereye nasıl kaydedip napacağımızı açıklasan çünkü ben bu konularda çok yeniyim, kendime bi hoca bulsam çok şey öğrenecem...
 
Üye
Katılım
26 Mar 2016
Mesajlar
47
Tepki puanı
3
10 HİZMET YILI
classı nasıl tanımlıyoruz bi söylermisin kardeş lütfen
 
Üye
Katılım
23 Ara 2016
Mesajlar
36
Tepki puanı
6
Ödüller
7
Yaş
30
9 HİZMET YILI
kodları vermişsin, gereken programları da söylemişsin her şey güzel de bu kodlar nereye yazılıp nasıl bi dosya şekline dönüşecek? hangi programla çalıştırılacak ya da nereye enjekte edilecek bi de bunları anlatsan ufkumuz açılacak
 
<Ç0rumlu>
Ultra Üye
Katılım
19 May 2016
Mesajlar
1,546
Tepki puanı
135
Ödüller
10
Yaş
29
10 HİZMET YILI
kodları vermişsin, gereken programları da söylemişsin her şey güzel de bu kodlar nereye yazılıp nasıl bi dosya şekline dönüşecek? hangi programla çalıştırılacak ya da nereye enjekte edilecek bi de bunları anlatsan ufkumuz açılacak
2.,3. bölüm yakında gelicek
 
Słyszę, słyszę letni powiew.
Kurucu
Katılım
20 Haz 2015
Mesajlar
7,666
Çözümler
136
Tepki puanı
20,724
Ödüller
25
10 HİZMET YILI
kodları vermişsin, gereken programları da söylemişsin her şey güzel de bu kodlar nereye yazılıp nasıl bi dosya şekline dönüşecek? hangi programla çalıştırılacak ya da nereye enjekte edilecek bi de bunları anlatsan ufkumuz açılacak
C++ da derlersin bunları. Fakat hiçbir şey bilmiyorsan programlamaya dair, direk bypass işinden başlama. Zaten başlasanda bir yere varamazsın. Önce dili öğrenmeye bak, sonra oyun bu dili nasıl kullanıyor kendinden çözersin, sonra reverse engineering kafası sende oluşur ve ülkene vatanına faydalı birisi olursun.
 
Seçkin Üye
Katılım
30 Tem 2017
Mesajlar
597
Çözümler
1
Tepki puanı
122
Yaş
27
8 HİZMET YILI
C++ da derlersin bunları. Fakat hiçbir şey bilmiyorsan programlamaya dair, direk bypass işinden başlama. Zaten başlasanda bir yere varamazsın. Önce dili öğrenmeye bak, sonra oyun bu dili nasıl kullanıyor kendinden çözersin, sonra reverse engineering kafası sende oluşur ve ülkene vatanına faydalı birisi olursun.
Sınırsız flood atma pointeri buldum :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst