luac Posted December 22, 2021 Share Posted December 22, 2021 Здравствуйте друзья, подскажите пожалуйста, как реализовать ресурс, который защитит от нападения с таким читом как "Lua Injector (Загрузка стороннего кода со стороны клиента)". Знаю такую фичу как loadstring, как мне добавить проверки на неё, например: Если игрок вызвал outputChatBox с помощью чита, тогда его кикает. Помогите, пожалуйста. P.S. Кастомная версия МТА Link to comment
Scripting Moderators Sarrum Posted December 23, 2021 Scripting Moderators Share Posted December 23, 2021 . Возможно функция addDebugHook поможет. Link to comment
luac Posted December 23, 2021 Author Share Posted December 23, 2021 Каким образом реализовать код ? Link to comment
luac Posted December 23, 2021 Author Share Posted December 23, 2021 4 hours ago, Sarrum said: . Возможно функция addDebugHook поможет. Что только не пробовал, не получается пофиксить, есть-ли возможность в MTA получить текст игрока при входе на сервер ? Например: Если у игрока есть текст в чате "MTA" тогда его кикает. Link to comment
Scripting Moderators Sarrum Posted December 23, 2021 Scripting Moderators Share 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 выглядит более интересным (хоть и может повлиять на производительность), ибо кроме сообщения можно получить и другую полезную информацию. Например ресурс, который вызвал функцию, файл, строку кода и так далее. Но эти данные нужно логировать на сервере и затем уже анализировать. Link to comment
Kenix Posted December 24, 2021 Share 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 Link to comment
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