• 🎉 Hey there! I've just launched my brand new server voting platform — Metin2 P Servers 🚀

AntiCheat ClientSide Source

Member
Nov
Threads
0
10
0
1
HubMoney
45

AD: Mt2009 - Mobile & PC - 30 January 2026 CHECK THE PRESENTATION!

A client-sided anti-cheat developed during a freelance project to "plug-in" to a proprietary client for a private server. Includes memory integrity checks, thread execution restrictions, hook detection, memory honeypots, and more.

*Memory Integrity Check​

Gathers a collection of memory pages initially within the game's module (anticheat::cheat_monitor::init) and generates a CRC32 hash based on the memory contents of each page (calc_vpt_hashes) - each validated every cycle (anticheat::cheat_monitor::check_pages).

*Thread Blocking​

Hooks RtlUserThreadStart and checks if the designated address of execution for the thread is within the correct memory bounds. In this case, it is called "image-only execution", where only threads within the primary image (and some other excluded images such as ucrtbased.dll) are allowed to have threads run. If a thread is running outside of these bounds then it is detected as malicious inside an invalid execution space. This also prevents debuggers from attaching the process since RtlUserThreadStart is executed before DbgUiRemoteBreakIn is called which executes outside of the secure boundaries.

*Memory Honeypots​

Memory honeypots are created within the init routine, where memory pages aren't yet accessed, but when they are (which they shouldn't be), it is detected. Prevents "cheat" scanners.

*Anti-Debugging​

Checks the PEB directly (instead of using IsDebuggerPresent, which can be easily looked up) for the value of the BeingDebugged flag as well as the value of NtGlobalFlag. Prone to just directly modifying the BeingDebugged flag to bypass this check though. DbgUiRemoteBreakIn is blocked because debug threads can't be executed in the process (DebugActiveProcess executes a thread within the process, but our process has memory bounds checking, simplified when thread scanning is mentioned.)

TBA: Arbitrary Vectored Exception Handling Detection

*Protected Functions​

Similar in concept to a memory integrity check, but specifically detects if Winsock routines designated as "protected" are hooked/modified, preventing user-mode packet modification and reading by software such as WPE Pro and rPE.

*Process Scanner​

Scans each process based on the contents (process name, window name) and unique memory signature.

*Module Scanner​

Scans the loaded modules in the process for any with blacklisted names.

Download

[Gizli içerik]
EYVALLAH
 
Member
Apr
Threads
0
8
0
1
HubMoney
132
Serbest çalışan bir proje sırasında, özel bir sunucu için özel bir istemciye "ekleme" yapmak üzere geliştirilen, istemci taraflı bir hile önleme. Bellek bütünlüğü kontrolleri, iş parçacığı yürütme kısıtlamaları, kanca algılama, bellek bal küpleri ve daha fazlasını içerir.

*Bellek Bütünlüğü Kontrolü​

Başlangıçta oyunun modülü içinde bir bellek sayfaları koleksiyonu toplar (anticheat:: cheat_monitor::init) ve her sayfanın bellek içeriğine (calc_vpt_hashes) dayalı bir CRC32 karması oluşturur - her biri her döngüyü doğrular (anticheat:: cheat_monitor::check_pages).

*İplik Engelleme​

RtlUserThreadStart'ı bağlar ve iş parçacığı için belirlenen yürütme adresinin doğru bellek sınırları içinde olup olmadığını kontrol eder. Bu durumda, yalnızca birincil görüntü içindeki iş parçacıklarının (ve ucrtbased.dll gibi diğer bazı hariç tutulan görüntülerin) iş parçacıklarının çalıştırılmasına izin verildiği "yalnızca görüntü yürütme" olarak adlandırılır. Bir iş parçacığı bu sınırların dışında çalışıyorsa geçersiz bir yürütme alanı içinde kötü amaçlı olarak algılanır. Bu aynı zamanda RtlUserThreadStart, güvenli sınırların dışında yürütülen DbgUiRemoteBreakIn çağrılmadan önce yürütüldüğünden hata ayıklayıcıların işlemi bağlamasını da önler.

*Hafıza Bal küpleri​

Bellek bal küpleri, bellek sayfalarına henüz erişilmeyen init rutini içinde oluşturulur, ancak erişildiklerinde (ki erişmemeleri gerekir) algılanır. "Hile" tarayıcılarını önler.

*Hata Ayıklama Önleme​

BeingDebugged bayrağının değeri ve NtGlobalFlag değeri için PEB'i doğrudan kontrol eder (kolayca aranabilen IsDebuggerPresent'i kullanmak yerine). Ancak bu kontrolü atlamak için Hata Ayıklama Olmak bayrağını doğrudan değiştirmeye eğilimlidir. DbgUiRemoteBreakIn engellenir, çünkü işlemde hata ayıklama iş parçacıkları yürütülemez (DebugActiveProcess işlem içinde bir iş parçacığı yürütür, ancak işlemimizde iş parçacığı taramasından bahsedildiğinde basitleştirilmiş bellek sınırları denetimi vardır.)

TBA: Keyfi Vektörlü İstisna İşleme Tespiti

*Korunan İşlevler​

Konsept olarak bellek bütünlüğü kontrolüne benzer, ancak özellikle "korumalı" olarak belirlenen Winsock rutinlerinin bağlanıp değiştirilmediğini/değiştirilip değiştirilmediğini tespit ederek kullanıcı modu paket modifikasyonunu ve WPE Pro ve rPE gibi yazılımlar tarafından okunmasını önler.

*Süreç Tarayıcı​

Her işlemi içeriğe (işlem adı, pencere adı) ve benzersiz bellek imzasına göre tarar.

*Modül Tarayıcı​

Süreçte yüklenen modülleri kara listeye alınmış adlara sahip modüller için tarar.

i̇ndirmek

[Gizli içerik]
ttyy