Cheaters abusam de eventos de rede para se dar dinheiro, spawnar veículos e obter itens. Veja como funcionam os exploits de trigger no FiveM, por que são tão difíceis de auditar manualmente e como o Trigger Finder da ZeroTrust mapeia e sinaliza toda a sua superfície de ataque de eventos.
Se você administra um servidor FiveM há algum tempo, já viu este problema: um jogador com um menu de cheat se dá dinheiro, spawna veículos ou enche o inventário de itens, sem nunca tocar na interface prevista. Ele não está quebrando o motor do jogo; está chamando diretamente os eventos de rede do seu servidor.
Essa é a forma mais comum de exploração de servidores FiveM, e "proteja seus eventos" é o conselho padrão. O problema é que esse conselho pressupõe que você já saiba quais eventos estão expostos. Em um servidor rodando dezenas de recursos, quase ninguém sabe. Este post explica como funcionam os exploits de trigger, por que são tão difíceis de corrigir manualmente e como transformamos todo o problema em uma ferramenta: o Trigger Finder.
No FiveM, os scripts se comunicam através da fronteira cliente-servidor usando eventos de rede. Um cliente chama TriggerServerEvent e o servidor executa o handler registrado para aquele nome de evento. É exatamente assim que o gameplay legítimo funciona — e exatamente do que um cheat abusa.
Um menu de cheat pode disparar qualquer evento de rede que seu servidor registre, com os argumentos que quiser. Se um recurso tem um evento de servidor que adiciona dinheiro, dá um item ou spawna um veículo e confia nos valores enviados pelo cliente, o cheater simplesmente o chama diretamente:
-- Vulnerável: o servidor confia em tudo o que o cliente envia
RegisterNetEvent("shop:buyItem", function(item, amount)
local ply = FX.GetPlayerFromSource(source)
-- Sem verificação de preço, sem validação — o cliente controla tudo
ply.addItem(item, amount)
end)
-- Um cheat simplesmente chama:
-- TriggerServerEvent("shop:buyItem", "gold_bar", 9999)Corrigir um único evento é bem compreendido: validar no servidor, nunca confiar na entrada do cliente. Cobrimos os padrões exatos no nosso Guia de Segurança de Eventos Lua do FiveM. O difícil não é corrigir um evento; é saber onde todos eles estão.
Um servidor de roleplay típico roda de 50 a mais de 300 recursos, muitos deles scripts de terceiros que você não escreveu. Cada um pode registrar dezenas de eventos de rede — potencialmente milhares de eventos, espalhados por arquivos que você nunca abriu. Não dá para proteger o que não se vê, e ninguém vai ler manualmente cada recurso atrás de um handler addMoney esquecido.
Em vez de publicar mais documentação, embutimos a auditoria diretamente no painel da ZeroTrust. A ideia era simples: se a parte perigosa de um servidor é sua superfície de eventos, então todo dono deveria poder ver essa superfície inteira de relance, ordenada por risco, com um caminho direto até cada uma.
O Trigger Finder é um scanner integrado ao painel da ZeroTrust. Você inicia uma varredura a partir do servidor, e ele percorre seus recursos e extrai cada evento e trigger encontrado — marcando cada um com seu recurso, arquivo, número da linha, lado (cliente ou servidor) e nome do evento.
Em vez de adivinhar, você tem um inventário completo e pesquisável de cada evento de rede que seu servidor expõe. Cada trigger é registrado com onde ele vive e em qual direção ele flui — Cliente → Servidor, Servidor → Cliente, Cliente → Cliente ou Servidor → Servidor — para você ver na hora quais são alcançáveis por um cliente malicioso.
O resultado é um panorama de risco do seu servidor inteiro: quantos triggers são seguros ou críticos, quais recursos contêm mais eventos perigosos e como tudo se divide entre cliente e servidor.
Cada achado leva de volta ao seu recurso → arquivo → linha, com uma visão de contexto de código para ler o trigger no lugar. Quando o Trigger Finder sinaliza um handler addItem perigoso, você sabe exatamente qual script e qual linha reforçar — sem caça.
Cada servidor é diferente, especialmente com frameworks personalizados. Você pode configurar suas próprias palavras-chave e a lista de eventos perigosos, para que o Trigger Finder sinalize os nomes de função que importam para os seus scripts, não só os padrões.
O Trigger Finder diz o que proteger. Fechar a lacuna é o próximo passo: valide cada evento sinalizado no servidor, obtenha valores por métodos do servidor em vez de confiar no cliente, e verifique o estado, a posição e as permissões do jogador antes de agir. Todos os padrões — além das convars de segurança do FXServer que vale a pena ativar — estão no nosso Guia de Segurança de Eventos Lua do FiveM.
Não dá para defender uma superfície de ataque que você nunca viu. O Trigger Finder transforma o conselho vago de "proteja seus eventos" em uma checklist concreta gerada a partir do seu servidor real — para você saber exatamente o que está exposto e onde corrigir.