Florin93 41 Posted October 26, 2024 Share Posted October 26, 2024 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: This is the hidden content, please Sign In or Sign Up 3 1 1 Quote Link to comment Share on other sites More sharing options...
Metin2PServers Bot Metin2 Bot 5 Posted October 26, 2024 Metin2PServers Bot Share Posted October 26, 2024 Thank you for the post Florin93 Now we will take care that your topic reaches many people by adding tags Forum Description : Metin2 Server Files, Server Files, Metin2 Private Servers, Metin2, Metin2 Systems, C++ and Python, Metin2 Home Pages, Metin2 Private Server, Metin2 Download, Metin2 Support, Metin2 Forum, Metin2 Pvp Servers, Errors, Bugs, Requests, Metin2 Pvp Forum, Everything About Metin2. Tags: #Metin2 Server Files, #Server Files, #Metin2 Private Servers, #Metin2, #Metin2 Systems, #C++ and Python, #Metin2 Home Pages, #Metin2 Private Server, #Metin2 Download, #Metin2 Support, #Metin2 Forum, #Metin2 Pvp Servers, #Errors, #Bugs, #Requests, #Metin2 Pvp #Forum . Quote Link to comment Share on other sites More sharing options...
onetakexd 0 Posted October 26, 2024 Share Posted October 26, 2024 ty Quote Link to comment Share on other sites More sharing options...
SFX 307 Posted October 26, 2024 Share Posted October 26, 2024 Ty Quote Link to comment Share on other sites More sharing options...
eg0ist 3 Posted October 26, 2024 Share Posted October 26, 2024 thx Quote Link to comment Share on other sites More sharing options...
allegato13 0 Posted October 26, 2024 Share Posted October 26, 2024 thank you Quote Link to comment Share on other sites More sharing options...
Prznt 0 Posted October 26, 2024 Share Posted October 26, 2024 ty Quote Link to comment Share on other sites More sharing options...
Onix3 1 Posted October 26, 2024 Share Posted October 26, 2024 14 hours ago, Florin93 said: 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: Hidden Content Reply to this topic to see the hidden content. Quote Link to comment Share on other sites More sharing options...
Color 1 Posted October 26, 2024 Share Posted October 26, 2024 ty Quote Link to comment Share on other sites More sharing options...
Etzhel 0 Posted October 26, 2024 Share Posted October 26, 2024 thank you.. Quote Link to comment Share on other sites More sharing options...
Alim 0 Posted October 26, 2024 Share Posted October 26, 2024 ty Quote Link to comment Share on other sites More sharing options...
xrhstos000 68 Posted October 28, 2024 Share Posted October 28, 2024 ty Quote Link to comment Share on other sites More sharing options...
Uffo94 12 Posted October 28, 2024 Share Posted October 28, 2024 On 10/26/2024 at 1:25 AM, Florin93 said: 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: Hidden Content Reply to this topic to see the hidden content. thanks Quote Link to comment Share on other sites More sharing options...
Lupusul 92 Posted October 29, 2024 Share Posted October 29, 2024 thanks Quote Link to comment Share on other sites More sharing options...
Rajmund 0 Posted October 30, 2024 Share Posted October 30, 2024 ty Quote Link to comment Share on other sites More sharing options...
tofadi5 0 Posted October 30, 2024 Share Posted October 30, 2024 ty Quote Link to comment Share on other sites More sharing options...
MarcoX 0 Posted October 30, 2024 Share Posted October 30, 2024 ty Quote Link to comment Share on other sites More sharing options...
control 0 Posted October 30, 2024 Share Posted October 30, 2024 Thx Quote Link to comment Share on other sites More sharing options...
Aaro 0 Posted November 2, 2024 Share Posted November 2, 2024 ty Quote Link to comment Share on other sites More sharing options...
TheLic 1 Posted November 2, 2024 Share Posted November 2, 2024 Thank you Quote Link to comment Share on other sites More sharing options...
algia 1 Posted November 4, 2024 Share Posted November 4, 2024 y Quote Link to comment Share on other sites More sharing options...
ocgames123 0 Posted November 5, 2024 Share Posted November 5, 2024 h Quote Link to comment Share on other sites More sharing options...
shenhui1986 0 Posted November 6, 2024 Share Posted November 6, 2024 thank you Quote Link to comment Share on other sites More sharing options...
savis 0 Posted November 8, 2024 Share Posted November 8, 2024 ty Quote Link to comment Share on other sites More sharing options...
algia 1 Posted November 16, 2024 Share Posted November 16, 2024 ty Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.