25 de junho de 2026
6 min read
ZeroTrust Team

Parando exploits de trigger no FiveM: como resolvemos isso com o Trigger Finder

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.

O que é, de fato, um exploit de trigger

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)

O problema central

Todo handler de evento de rede que adiciona dinheiro, itens, armas, veículos ou empregos é um exploit em potencial, a menos que o servidor valide a requisição de forma independente do que o cliente alega.

Por que é tão difícil corrigir manualmente

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.

Visibilidade é o verdadeiro problema

Donos de servidor não são explorados porque proteger um evento é difícil. São explorados porque nunca souberam que o evento perigoso existia.

Como resolvemos isso

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.

  • Encontrar tudo — mapear automaticamente cada evento e trigger em todos os seus recursos, não só os que você lembra.
  • Ordenar por risco — destacar os handlers que os cheaters realmente miram (dinheiro, itens, armas, veículos, empregos, HTTP de saída) para você começar onde importa.
  • Ir direto à fonte — apontar o recurso, arquivo e linha exatos para que a correção leve segundos.

Conheça o Trigger Finder

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.

Ele mapeia toda a sua superfície de triggers

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.

Ele sinaliza os perigosos automaticamente

  • Movem dinheiro: addMoney, giveMoney, addAccountMoney, addBank, giveBank.
  • Dão itens: giveItem, addItem, addInventoryItem.
  • Distribuem armas: giveWeapon, addWeapon.
  • Spawnam veículos: addVehicle, spawnVehicle.
  • Mudam empregos: setJob, setPlayerJob.
  • Criam pickups ou enviam requisições externas: createPickup, PerformHttpRequest, SendWebhook.

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.

Ele organiza tudo em categorias

  • Dinheiro, Eventos de Dar/Adicionar Item e Eventos de Inventário para a economia.
  • Spawn de Veículo e Troca de Emprego para exploits comuns de roleplay.
  • RegisterNetEvent e AddEventHandler para identificar eventos registrados no contexto errado.
  • Eventos Dinâmicos para tudo que não se encaixa em um padrão conhecido.

Ele te leva à linha exata

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.

Ele é ajustável ao seu servidor

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.

Do achado à correção

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.

Defesa em profundidade

O Trigger Finder mapeia a superfície, a validação no servidor fecha as brechas, e as detecções da ZeroTrust pegam os cheaters que insistem. Nenhuma camada sozinha é suficiente.

Pare de adivinhar sua superfície de ataque

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.

Pronto para ver a superfície de triggers do seu servidor?

O Trigger Finder vem dentro do painel da ZeroTrust. Obtenha a ZeroTrust ou entre no nosso Discord para começar.