Jump to content

Помогите


luac

Recommended Posts

Здравствуйте друзья, подскажите пожалуйста, как реализовать ресурс, который защитит от нападения с таким читом как "Lua Injector (Загрузка стороннего кода со стороны клиента)". Знаю такую фичу как loadstring, как мне добавить проверки на неё, например: Если игрок вызвал outputChatBox с помощью чита, тогда его кикает. 

Помогите, пожалуйста. 

P.S. Кастомная версия МТА

Link to comment
4 hours ago, Sarrum said:

?. Возможно функция addDebugHook поможет.

Что только не пробовал, не получается пофиксить, есть-ли возможность в MTA получить текст игрока при входе на сервер ?

Например: Если у игрока есть текст в чате "MTA" тогда его кикает.

 

Link to comment
  • Scripting Moderators

Можно ловить все сообщения и затем находить те, которые будут содержать нужное слово в тексте:

-- Клиент:
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
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 by Kenix
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...