
MiTurboFix: proteção contra falhas RCE no SA-MP
Basta entrar no servidor errado: o SA-MP 0.3.7 tem falhas que deixam o servidor rodar código no seu PC. O MiTurboFix fecha seis delas.
Você não baixa nada nem clica em janela nenhuma. O servidor manda um pacote montado de propósito, o cliente escreve aquilo num espaço de memória pequeno demais, e o que transborda passa a decidir o que o jogo executa. Dali em diante o código é de quem mandou, rodando dentro do gta_sa.exe com as mesmas permissões do seu usuário do Windows: mexer nos seus arquivos, levar o que estiver salvo, instalar outro programa.
As seis falhas, e o que o R5 não fechou
RCE é a sigla em inglês para execução remota de código. No SA-MP ela entra pelo que o servidor já tem o direito de mandar: diálogo, texto na tela, menu, animação, ponto de renascimento. O cliente confia no tamanho do que chega e não confere.
A mais conhecida é a dos diálogos em lista, o estilo DIALOG_STYLE_LIST, aquela janela de loja, inventário e teleporte. Um item com mais de 128 bytes estoura o espaço reservado para ele, e o que seria só um crash vira código rodando.
Foi por causa dela que saiu o R5, em 16 de novembro de 2022, com o Kalcor pedindo para todo mundo atualizar. Só que o R5 não fechou as outras. Segundo o autor do MultiRCE Fix, a falha dos menus ainda corrompe a memória com ID de menu acima de 127, e a das animações nunca teve correção oficial. Trocar de versão ajuda. Quem fecha o resto é conserto.
Antes dele, o DialogRCEfix, de 2023, fechava só a dos diálogos, e o MultiRCE Fix, de 2024, as de menu, GameText e animação. O MiTurboFix saiu em setembro de 2024 e junta as seis num .asi só:
- Diálogos: barra o item de lista maior que 128 bytes antes de ele chegar na memória.
ApplyAnimation: confere os dados da animação que o servidor aplica nos jogadores.ApplyActorAnimation: a mesma coisa para os atores, os personagens parados que o servidor põe no mapa, como o vendedor da loja.GameText: o texto grande do meio da tela, que a atualização oficial só corrigiu em parte.SetSpawnInfo: um estouro no ponto de renascimento do hospital, dentro deCRestart::AddHospitalRestartPoint. É a mais incerta das seis: o próprio autor marca como possível RCE e acha difícil de explorar.InitMenu: os menus antigos do SA-MP, a falha do ID acima de 127.
Se você joga em qualquer 0.3.7, principalmente no R1, instale. É um arquivo, e depois você esquece que ele existe.
O código é aberto, sob a licença Unlicense, que na prática é domínio público: qualquer um pode ler, mudar e compilar de novo. O autor abriu o repositório para correção de qualquer pessoa, até anônima, e diz com todas as letras que não escrevia cliente de SA-MP havia oito anos.
E o arquivo vem assinado. Mudou um bit, a assinatura quebra. É isso que separa o .asi original de uma cópia reenviada por aí com alguma coisa colada dentro, e a pergunta lá embaixo ensina a conferir.
O que ele não resolve
Ele fecha as falhas que lista, e só elas. Não é antivírus, não te protege de mod com vírus que você mesmo instalou, e não adianta nada se a sua senha do servidor é a mesma do e-mail. Antes de instalar qualquer coisa, vale ler qual mod pode ter vírus, e qual não pode.
Jogar só em servidor conhecido diminui o risco. Não zera.
Se você já usava o DialogRCEfix ou o MultiRCE Fix, não precisa mais deles: o MiTurboFix cobre o que os dois cobrem.
Autor: povargek
Créditos: AnWu (modelo do .asi), kin4stat (kthook)
Versão: 0.0.7.1 alfa, assinada
Tamanho: 1,3 MB
Compatível: SA-MP 0.3.7 R1 a R5, 0.3.DL e CR-MP 0.3.7
Fonte: tópico do autor no BlastHack e repositório no GitHub

