Jump to content

Помогите


luac

Recommended Posts

Posted

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

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

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

Posted
4 hours ago, Sarrum said:

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

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

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

 

  • Moderators
Posted

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

-- Клиент:
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 выглядит более интересным (хоть и может повлиять на производительность), ибо кроме сообщения можно получить и другую полезную информацию. Например ресурс, который вызвал функцию, файл, строку кода и так далее. Но эти данные нужно логировать на сервере и затем уже анализировать.

Posted (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 by Kenix

http://vk.com/the_kenix

Вопросы задавайте на форуме, не пишите мне в личку.

Please don't pm me.

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...