AntiCheat ClientSide Source

Member
Aug
Threads
0
45
1
8

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

برنامج مكافحة الغش من جانب العميل تم تطويره أثناء مشروع مستقل "للتوصيل" بعميل خاص لخادم خاص. يتضمن فحوصات سلامة الذاكرة، وقيود تنفيذ الخيوط، واكتشاف الخطاف، ومصائد الذاكرة، والمزيد.

*فحص سلامة الذاكرة​

يقوم بتجميع مجموعة من صفحات الذاكرة مبدئيًا داخل وحدة اللعبة (anticheat::cheat_monitor::init) ويولد تجزئة CRC32 استنادًا إلى محتويات الذاكرة لكل صفحة (calc_vpt_hashes) - يتم التحقق من صحة كل منها في كل دورة (anticheat::cheat_monitor::check_pages).

*حجب الخيط​

يقوم بربط RtlUserThreadStart ويتحقق مما إذا كان عنوان التنفيذ المحدد للخيط يقع ضمن حدود الذاكرة الصحيحة. في هذه الحالة، يُطلق عليه "تنفيذ الصورة فقط"، حيث يُسمح فقط للخيوط الموجودة داخل الصورة الأساسية (وبعض الصور المستبعدة الأخرى مثل ucrtbased.dll) بتشغيل الخيوط. إذا كان الخيط يعمل خارج هذه الحدود، فسيتم اكتشافه على أنه ضار داخل مساحة تنفيذ غير صالحة. يمنع هذا أيضًا أدوات تصحيح الأخطاء من إرفاق العملية نظرًا لأن RtlUserThreadStart يتم تنفيذه قبل استدعاء DbgUiRemoteBreakIn الذي يتم تنفيذه خارج الحدود الآمنة.

*مصائد الذاكرة​

يتم إنشاء مصائد الذاكرة داخل روتين التهيئة، حيث لا يتم الوصول إلى صفحات الذاكرة بعد، ولكن عندما يتم الوصول إليها (وهو أمر لا ينبغي أن يحدث)، يتم اكتشافها. يمنع الماسحات الضوئية "الغش".

*مكافحة التصحيح​

يتحقق من PEB مباشرة (بدلاً من استخدام IsDebuggerPresent، والذي يمكن البحث عنه بسهولة) بحثًا عن قيمة علامة BeingDebugged بالإضافة إلى قيمة NtGlobalFlag. مع ذلك، يميل إلى تعديل علامة BeingDebugged مباشرةً لتجاوز هذا الفحص. تم حظر DbgUiRemoteBreakIn لأنه لا يمكن تنفيذ مؤشرات ترابط التصحيح في العملية (تنفذ DebugActiveProcess مؤشر ترابط داخل العملية، لكن عمليتنا لديها فحص حدود الذاكرة، وهو أمر مبسط عند ذكر فحص المؤشرات.)

TBA: اكتشاف معالجة الاستثناءات المتجهة التعسفية

*الوظائف المحمية​

مشابه في مفهومه لفحص سلامة الذاكرة، ولكنه يكتشف على وجه التحديد ما إذا كانت روتينات Winsock المخصصة كـ "محمية" مرتبطة/معدلة، مما يمنع تعديل الحزمة في وضع المستخدم والقراءة بواسطة برامج مثل WPE Pro وrPE.

*ماسح العمليات​

يقوم بمسح كل عملية بناءً على المحتويات (اسم العملية، اسم النافذة) والتوقيع الفريد للذاكرة.

*وحدة الماسح الضوئي​

يقوم بفحص الوحدات المحملة في العملية بحثًا عن أي وحدات تحتوي على أسماء مدرجة في القائمة السوداء.

تحميل

[المحتوى المخفي]
4
 
Member
Oct
Threads
0
61
0
6
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]
thx
 
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock