لماذا لا تكفي طبقة واحدة
تعتمد معظم أنتي تشيتات فايف إم على طبقة كشف واحدة: إما منظومة على العميل تراقب ملفات DLL المحقونة والدوال المربوطة وتواقيع القوائم المعروفة، أو منظومة على السيرفر تتحقق من الأحداث وترفض انتقالات حالة اللعبة المستحيلة. ولكل طبقة نمط فشل معروف. فالأنتي تشيت الذي يعمل على العميل وحده يفشل لحظة إخفاء الغش لمحمّله عن فحوص التواقيع. والذي يعمل على السيرفر وحده يفشل لحظة احترام الغش لسطح الأحداث المشروع مع استخدام اختراقات على جانب العميل (التصويب الصامت، وESP، والرؤية عبر الجدران) لا تطلق أي حدث على السيرفر. الكشف بطبقتين يعني أن الطبقة التي ترى الغش تمسكه، والطبقة التي لا تراه تنتج مع ذلك إشارة سلوكية يستطيع الأدمن مراجعتها.
ما الذي تراقبه طبقة العميل
على جانب العميل، يراقب Raven الوحدات المحقونة، ودوال المحرك المربوطة، وحالة NUI DevTools، وسلامة ملفات الريسورس الخاص به، ووجود محمّلات الغش المعروفة أثناء التشغيل. وتبقى تواقيع أنشط عائلات قوائم المودات (Eulen، وRedengine، وHamMafia، وSusano، وTZ، وTZX، وSkript، وPhaze، وLumia) محدّثة بوتيرة إصدار من 1 إلى 7 أيام (انظر /changelog). وعندما يُطلق توقيع معروف، تُلتقط الأدلة (لقطة شاشة مع أثر الكشف) وتُرفع إلى اللوحة السحابية. وعندما لا يُطلق التوقيع لكن تظهر شذوذات، تنخفض درجة ثقة ذلك اللاعب ويظهر على الخريطة الحية لمراجعة الأدمن.
ما الذي تراقبه طبقة السيرفر
على جانب السيرفر، يشغّل Raven تمريرة تحقق على كل حدث سيرفر يطلقه اللاعب. أسماء الأحداث التي لا يجب أن تأتي من عميل تُحجب مباشرة. وحمولات الأحداث التي تتجاوز الحدود المعقولة (كميات الأغراض، وفروق المال، وعدد استدعاءات المركبات في الدقيقة) تُرفض وتُسجَّل. وتسلسلات الأحداث التي تطابق أنماط ثغرات معروفة، مثل التسلسل المتشابك الذي تستخدمه نسخ Redengine، تُحجب على مستوى النمط. والكشف على السيرفر يعمل حتى لو جرى تجاوز كل فحوص العميل، ولهذا فالتغطية على جانب السيرفر ليست محل تفاوض.
كيف تتعاون الطبقتان
حلقة heartbeat تربط الطبقتين. يرسل العميل دوريًا بصمة موقّعة لحالته الحرجة أثناء التشغيل إلى السيرفر. فإذا توقف النبض، يعامل السيرفر العميل على أنه متلاعَب به ويطبّق الاستجابة المضبوطة (تحذير أو طرد أو حظر تلقائي). وإذا استمر النبض لكن حمولته لم تعد تطابق القيم المتوقعة، يسجّل السيرفر الانحراف ويغذّي به نموذج درجة الثقة. وفي الحالتين تبقى لدى السيرفر قراءة مستمرة عمّا إذا كانت طبقة العميل ما زالت تعمل، فالغش الذي يعطّل طبقة العميل يصبح مرئيًا فورًا من جانب السيرفر.
لماذا يهم هذا في مسألة مقاومة التجاوز
لا يوجد أنتي تشيت محصّن ضد التجاوز. تجاوز أنتي تشيت بطبقة واحدة يتطلب هزيمة منظومة واحدة. أما تجاوز Raven بطبقتيه فيتطلب هزيمة منظومتين في الوقت نفسه، إضافة إلى نظام heartbeat، وإلى نموذج درجة الثقة الذي يُظهر الشذوذات السلوكية. كلفة التجاوز الناجح غير المكشوف تصبح أعلى بوضوح، ووقت إصدار الترقيع يصبح أقصر لأن الطبقة التي لاحظت الغش تسلّم بيانات الالتقاط إلى الفريق الذي يصدر تحديث التوقيع التالي.