luac Posted December 22, 2021 Posted December 22, 2021 Здравствуйте друзья, подскажите пожалуйста, как реализовать ресурс, который защитит от нападения с таким читом как "Lua Injector (Загрузка стороннего кода со стороны клиента)". Знаю такую фичу как loadstring, как мне добавить проверки на неё, например: Если игрок вызвал outputChatBox с помощью чита, тогда его кикает. Помогите, пожалуйста. P.S. Кастомная версия МТА
Scripting Moderators Sarrum Posted December 23, 2021 Scripting Moderators Posted December 23, 2021 . Возможно функция addDebugHook поможет.
luac Posted December 23, 2021 Author Posted December 23, 2021 4 hours ago, Sarrum said: . Возможно функция addDebugHook поможет. Что только не пробовал, не получается пофиксить, есть-ли возможность в MTA получить текст игрока при входе на сервер ? Например: Если у игрока есть текст в чате "MTA" тогда его кикает.
Scripting Moderators Sarrum Posted December 23, 2021 Scripting Moderators Posted December 23, 2021 Можно ловить все сообщения и затем находить те, которые будут содержать нужное слово в тексте: -- Клиент: local function onClientChatMessageHandler ( text ) if string.find ( text, "MTA" ) then triggerServerEvent ( "kickMe", localPlayer ) end end addEventHandler ( "onClientChatMessage", root, onClientChatMessageHandler ) -- Сервер: addEvent ( "kickMe", true ) addEventHandler ( "kickMe", root, function ( ) kickPlayer ( client, "Причина" ) end ) Но стоит понимать, что любой игрок может написать такое сообщение в чат и произойдёт фиаско (будут кикнуты все игроки, которые увидят это сообщение). Вариант с addDebugHook выглядит более интересным (хоть и может повлиять на производительность), ибо кроме сообщения можно получить и другую полезную информацию. Например ресурс, который вызвал функцию, файл, строку кода и так далее. Но эти данные нужно логировать на сервере и затем уже анализировать.
Kenix Posted December 24, 2021 Posted December 24, 2021 (edited) On 22/12/2021 at 23:37, luac said: Здравствуйте друзья, подскажите пожалуйста, как реализовать ресурс, который защитит от нападения с таким читом как "Lua Injector (Загрузка стороннего кода со стороны клиента)". Знаю такую фичу как loadstring, как мне добавить проверки на неё, например: Если игрок вызвал outputChatBox с помощью чита, тогда его кикает. Помогите, пожалуйста. P.S. Кастомная версия МТА Чит в теории могут инжектить в любой ресурс, вам ничего не поможет кроме грамотной реализации логики не доверия со стороны сервера к клиенту. Все запросы, которые идут от клиента вы ОБЯЗАНЫ проверять, чтобы ваш мод не взломали. Также советуем вам использовать атрибут cache="false" у скриптов, чтобы исходный код не был виден в папке resources на стороне клиента Также мы настоятельно не рекомендуем изменять setElementData со стороны клиента, вы можете проверить любое изменение и кикнуть игрока Прочитайте эту статью, она вам будет полезна https://wiki.multitheftauto.com/wiki/Script_security addDebugHook подойдет скорее для диагностики проблемы, на основе него можно попробовать реализовать античит, но будет замедляться работа кода, это надо иметь ввиду. Edited December 24, 2021 by Kenix
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now