luac Posted December 22, 2021 Posted December 22, 2021 Здравствуйте друзья, подскажите пожалуйста, как реализовать ресурс, который защитит от нападения с таким читом как "Lua Injector (Загрузка стороннего кода со стороны клиента)". Знаю такую фичу как loadstring, как мне добавить проверки на неё, например: Если игрок вызвал outputChatBox с помощью чита, тогда его кикает. Помогите, пожалуйста. P.S. Кастомная версия МТА
Moderators Sarrum Posted December 23, 2021 Moderators Posted December 23, 2021 . Возможно функция addDebugHook поможет.
luac Posted December 23, 2021 Author Posted December 23, 2021 4 hours ago, Sarrum said: . Возможно функция addDebugHook поможет. Что только не пробовал, не получается пофиксить, есть-ли возможность в MTA получить текст игрока при входе на сервер ? Например: Если у игрока есть текст в чате "MTA" тогда его кикает.
Moderators Sarrum Posted December 23, 2021 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 http://vk.com/the_kenix Вопросы задавайте на форуме, не пишите мне в личку. Please don't pm me.
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