site logo site logo site logo
site logo





کانال تلگرام

پیوستن به کانال

گروه تلگرام

پیوستن به گروه





سلام و درود خدمت کاربران عزیز گیمز فور آنلاین. امروز با آموزش طراحی آنتی چیت (Anti Executer) برای سرور های Mta میزبان شما هستیم. به عنوان اولین مرجع ام تی ای در ایران وظیفه خود دانستیم تا با این پست به شما اونر های محترم راه های جلوگیری از چیت های High Level و اینجکتور را یاد دهیم.


نحوه عملکرد چیت ؟

چیت های Executer و به اصطلاح Lua Injector از طریق dll و یک اینجکتور روی کلاینت راه اندازی میشوند و با دور زدن آنتی چیت Mta از طریق هارد کره ام تی ای، چیتر ها قادر به استفاده از فانکشن های ام تی ای و ایونت های گیم مد شما خواهند بود که در ادامه مطلب راه های جلوگیری از آن را یاد خواهیم داد.


1. جلوگیری از ارسال ایونت فیک

یکی از روش های اتک ارسال ایونت فیک به سرور از کلاینت است. در این روش پلیر یک ایونت فیک را در هر ثانیه 200 بار اسپم میدهد و باعث نتورک شدن سرور شما و در نهایت کرش شدن کنسول میشود. شما باید با استفاده از onDebugMessage کدی بنویسید که اگر در کنسول (دیباگ) متن 

Client PlayerName triggered serverside event EventFakeName, but event is not added serverside

ظاهر شد، آنتی چیت سریال اکانت PlayerName که ایونت فیک ارسال کرده را درجا بن کند (در کنسول بجای PlayerName نام چیتر را مینویسد). با استفاده از این روش از طریق سرور ساید به راحتی میتوانید جلوی ارسال ایونت فیک در سرور ام تی ای را بگیرید!


2. جلوگیری از اسپم ایونت

از آنجایی که شما از طریق روش قبل جلوی ارسال ایونت فیک را گرفتید، چیتر تصمیم میگیرد با استفاده از ایونت های شما اسپم کند و با این روش سرور شما را آف کند. شما باید از طریق eventClient ابتدا یک تایمر و یک عدد برای تعداد ایونت مجاز در هر ثانیه تعیین کنید که برای مثال پلیر در هر 1 ثانیه نهایت مجاز به ارسال 100 ایونت باشد (ممکن است بعضی از ریسورس های گیم مد شما ایونت زیادی در حالت عادی ارسال کند. برای همین نیاز به آزمایش و تعیین تعداد دارد) و در نهایت شرطی بذارید که پلیر اگر از حد مجاز عبور کرد بن یا کیک شود.


3. استفاده از کامند های ادمینی توسط چیتر

اگر مشاهده کردید که چیتر شروع به بن/کیک کردن پلیر ها کرده است و از قابلیت های ادمینی شما استفاده کرده است باید با استفاده از Element Data کدی بنویسید که اگر پلیر دیتای ادمینی نداشت و از فانکشن و یا ایونت ادمینی استفاده کرد از سرور بن شود. شما با این روش به راحتی میتوانید جلوی استفاده از Cmd های ادمینی توسط چیتر را بگیرید.


4. جلوگیری از تغییر Level و اسم و... پلیر ها توسط چیتر

ممکن است مشاهده کرده باشید که در TAB نام پلیر ها و رفرال و لول و... آنها به اسم چنل یا چیتر تغییر کرده است. شما ابتدا باید یک لیست بسازید که شامل اسم و لول و... پلیر شود (چیز هایی که پلیر ها نمیتوانند برای پلیر دیگری را تغییر دهند) سپس با استفاده از onElementDataChange کدی بنویسید که اگر پلیر دیتای پلیره دیگری را تغییر داد بن شود. با این روش به راحتی جلوی تغییر لول و اسم و رفرال و.. پلیر ها توسط چیتر را خواهید گرفت.


5. جلوگیری از استفاده ایونت های سرور برای پلیر های دیگر توسط چیتر

چیتر با استفاده از Lua Injector میتواند ریسورس های شما را Dump کند و نام ایونت های سورس شما را مشاهده کند. برای مثال شما در سورس فروشگاه خود ایونت PoolKamKon را ساخته اید که اگر پلیر آیتمی خرید از پلیر پول کم شود؛ حال چیتر از این ایونت میتواند استفاده کند و از تمام پلیر های آنلاین سرور پول کم کند. و اما روش جلوگیری آن چیست؟ شما باید کدی بنویسید که ایونت فقط توسط کلاینت پلیر ارسال شود و کار کند، و اگر ایونت برای پلیر x از کلاینت پلیر y ارسال شد، پلیر y از سرور بن شود.

if not (client and client == source) then return end

یکی از بخش های مهم در طراحی آنتی چیت این روش است که روش های دیگری هم وجود دارد. برای مثال سرور های ام تی ای گیمز فور آنلاین به سیستم سیزن کی مجهز است. به این صورت که پلیر بخواهد از ایونتی استفاده کند اون ایونت و پلیر یک سیزن کی (کد) مشترک دارند. و اگر چیتر بخواهد برای پلیر دیگری از ایونتی استفاده کند از آنجایی که Event Season key با Player Season key مطابقت ندارد، در نتیجه ایونت انجام نخواهد شد و پلیر بن میشود.


6. جلوگیری از فانکشن های امنیتی و غیر کاربردی

با توجه به روش قبل ممکنه ببینید پلیر از امکانات و فانکشن هایی استفاده میکند که شما در سورس های خود استفاده نکردید. چیت Executer این امکان را دارد تا از طریق کلاینت از فانکشن های ام تی ای استفاده کند. مثلا پلیری که روی هوا از RPG استفاده میکند، در واقع از فانکشن های مربوط به شلیک RPG که در ویکی ام تی ای میتوانید مشاهده کنید، استفاده میکند. شما یا از طریق ACL جلوی فانکشن را بگیرید :

<right name="function.loadstring" access="false"></right>

یا با Lua فانکشن های مورد نظر را بلاک کنید و کدی بنویسید که اگر پلیر از کلاینت این فانکشن ها را اجرا کرد، بن شود.


7. طراحی Anti Fly برای سرور ام تی ای

از قابلیت های رایج اکثر چیت ها میتوان به Fly اشاره کرد. شما برای جلوگیری از ایربریک در سرور ام تی ای باید ابتدا از طریق IsPlayerOnGround چک کنید که پلیر روی زمین است یا نه؛ که اگر روی زمین نبود با setTimer تایمش را ریکورد کنید و چک کنید پوز Z (ارتفاع) پلیر زیاد میشود یا نه. که اگر تایم زیادی روی هوا بود و Z آن بالا رفت از سرور بن شود. همچنین باید شرطی بنویسید که اگر پلیر سوار وسایل نقلیه مثل هواپیما و جت پک و.. بود این کد اجرا نشود. پلیر معمولا یا از طریق هواپیما و هلی و.. روی هوا پرواز میکند یا از طریق جت پک؛ همچنین موقع سقوط از ارتفاع و.. پوز z آن کاهش میابد و افزایش نمیابد، بنابراین پوز z پلیری که بدون سوار شدن وسایل نقلیه در 5 الی 10 ثانیه افزایش میابد، نشانه استفاده از Fly است.



برای طراحی آنتی چیت از طریق روش های ذکر شده حتما کد های خود را Server Side بنویسید، زیرا چیتر میتواند تمام کد های کلاینت گیم مد شما را آف کند. همچنین ما قادر به ارائه Anti Executer برای سرور شما به صورت سورس آماده نخواهیم بود، چون روش های ذکر شده در هر گیم مد بر اساس ایونت های سورس گیم مد شما متفاوت است و باید به صورت دستی توسط برنامه نویس های ام تی ای نوشته شود. همچنین اگر چیتری اخاذی کرد پیشنهاد میکنیم بجای دادن پول به چیتر برای چیت نزدن، یک برنامه نویس برای طراحی آنتی چیت استخدام کنید تا برای همیشه خیال خود را از چیتر ها راحت کنید.


و در آخر تشکری کنم از بهترین و حرفه ای ترین برنامه نویس ام تی ای ایران، StarButterfly که در این مدت به بهترین شکل توانست روش های جلوگیری از چیت های ام تی ای را شناسایی کند و در سرور های لایف فور گیم و... به صورت کاملا بهینه اجرا کند.



❤ برای حمایت از ما کافیست در چنل دیسکورد گیمز فور آنلاین عضو شوید

discord.com/invite/zNeUXGQC4s
telegram