Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[Tutorial] Como criar um anti-cheat


gaabscps
 Compartilhar

Posts Recomendados

Ok, ok, o fórum é de cheat's, mas saber como alguns cheat's funcionam ajudam a burlalos ^^

 

Índice

1. Handle

2. Processos

 

 

Aviso

Em certos momentos, usei o ~ para contornar o problema do fórum com os comandos, para não ficar com ****.

Quando forem testar, remova os ~!

 

 

1. Handle

O que é?

Handle é o identificador da janela. Serve para diferenciar uma das outras.

 

Como poderei usar para um anti-cheat?

Exatamente por ele servir para identificar as janelas, poderá ser usado para detectar se tem algum cheat aberto.

 

Para pegar o handle do cheat que deseja barrar, basta fazer assim:

1 -

É necessário se cadastrar para acessar o conteúdo.

Apenas passando o mouse em qual quer lugar, ele pegará muitas informações.

2 - Após instala-lo, abra-o e vá na aba Class

3 - Passe o mouse sobre a barra da janela, e mostrará o handle!

 

tut1han.png

 

Dica: Use o TAB para copiar o handle

 

Agora, ao comando!

É necessário se cadastrar para acessar o conteúdo.

 

Isso server como base... Mas... Existem muitos, muitos cheat's... E um comando desse por cheat pesaria muito.. Tem uma forma melhor?

É claro que sim! Para isso, iremos usar uma StringList!

StringList é o mesmo que o texto que tem nas linhas do memo.

 

Nas variáveis globais, adicione:

É necessário se cadastrar para acessar o conteúdo.

 

No OnCreat do f~orm adicione:

É necessário se cadastrar para acessar o conteúdo.

 

Tenha dois memos no f~orm e substitua o código anterior por esse:

É necessário se cadastrar para acessar o conteúdo.

 

Pronto!

Agora basta você ver o código funcionando, usando o paint e a calculadora!

 

2. Processos

O que é?

Simplificando, processos representam as tarefas em execução controlada por algum aplicativo.

Mais informação,

É necessário se cadastrar para acessar o conteúdo.

 

Como poderei usar para um anti-cheat?

Você pode listar quais são esses processos e analisar.

Basicamente, é da mesma forma que a anterior, a diferença é apenas que você não vai perguntar se tal handle existe, mas sim procurar a existência dele na lista de processos.

 

Para listar os processos, coloque mais um memo (caso não tenha seguido os passos sobre handle, nomeie ele de memo3)no f~orm use esse famoso comando...

É necessário se cadastrar para acessar o conteúdo.

 

E declare nas uses TlHelp32. Ela é responsável pela informações de todos os processos ocorrendo no sistema.

Caso queria ver o que contém nela, basta segurar o ctrl e clicar nela. Isso vale para tudo.

 

Pronto! Agora esta listando perfeitamente os processos!

 

Como nosso objetivo não é listar os processos, pode apagar o memo3.

Na linha memo3.Lines.A~dd(Struct.szExeFile);, substitua para if Struct.szExeFile = 'mspaint.exe' then showmessage('Paint detectado!');

 

Se estiver com o paint aberto, ele vai apitar.

Adaptando para StringList, conforme ensinei anteriomente...

É necessário se cadastrar para acessar o conteúdo.

 

Lembrando que o handle e nome do processo são diferentes...

No caso, eu usei os seguintes o mspaint.exe e notepad.exe.

 

Para pegar o processo do programa é super fácil:

  1. Abra o programa que deseja pegar o processo
  2. Vá para o gerenciador de tarefas
  3. Clique com o botão direito do mouse sobre a tarefa e escolha "Ir para processos"

 

 

 

 

Créditos:

  • gaabscps - Por ter feito o tutorial, montado e comandos do handle
  • almeida - Explicação sobre o comando de listar processos

 

 

Qual quer coisa, sugestão, crítica, só postar!

Link para o comentário
Compartilhar em outros sites

Não é só Handle e Título de processos que faz um anti-cheat.

Um desse dai é facilmente burlado.

 

Tem que proteger a memória, monitorar alterações feitas nela, um anti-inject com exceções das dlls carregadas no jogo, é essencial também...

Meus brinquedos em WinAPI:

Calculador

MemoryScanner

Faça parte também da DarkProgramming Team!

Link para o comentário
Compartilhar em outros sites

Eu pensei nisso, mas não sei como monitorar a memória nem barrar api's muito menos ensinar.

 

Talvez eu vá aprender como é e adiciono no tópico depois.

Mas esses dois métodos são os básicos e servem como bases.

Link para o comentário
Compartilhar em outros sites

jan := findwindow('MSPaintApp',nil); //No caso, o handle do paint é MSPaintApp. O segundo parâmetro esta dado como nil pelo fato de não sabermos ou não importa qual é o nome da janela

Ta errado o comentário, O segundo parâmetro do Findwindow é a classe, não a handle, para se pegar a handle se usa assim(sem uso de programas):

É necessário se cadastrar para acessar o conteúdo.

Pronto.

Outra coisa, Por processo, basta mudar o nome do projeto que seu nome é mudado,

Para fazer o hook basta usar GetModuleHandle e GetProc***ress e mudar os bytes de seu interesse...

Para verificar a memória é só comparar com um valor já restabelecido por você, ou uma variável que recebe seu valor e logo após fica verificando se tal valor foi mudado.

Link para o comentário
Compartilhar em outros sites

Ta errado o comentário, O segundo parâmetro do Findwindow é a classe, não a handle, para se pegar a handle se usa assim(sem uso de programas):

É necessário se cadastrar para acessar o conteúdo.

Pronto.

Não entendi o que disse...

Eu não disse que o segundo parâmetro era handle, apenas disse o que ele procurava.

 

Outra coisa, Por processo, basta mudar o nome do projeto que seu nome é mudado,

Eu sei que é um método ineficiente, mas mesmo assim resolvi ensinar como é.

 

Para fazer o hook basta usar GetModuleHandle e GetProc***ress e mudar os bytes de seu interesse...

Para verificar a memória é só comparar com um valor já restabelecido por você, ou uma variável que recebe seu valor e logo após fica verificando se tal valor foi mudado.

Ok, vou ver como é isso para eu incluir no tutorial.

VLw

Link para o comentário
Compartilhar em outros sites

Aparenta ser um anti-cheat "noob"

"Noob" quero dizer "Fácil de burlar".

Mas obrigado por postar,

e ajudar na Área Delphi/VB...

 

~Águia

You can spend minutes, hours, days, weeks, or even months over-analyzing a situation; trying to put the pieces together, justifying what could've, would've happened... or you can just leave the pieces on the floor and move the fuck on.

― Tupac Shakur

Link para o comentário
Compartilhar em outros sites

Aparenta ser um anti-cheat "noob"

"Noob" quero dizer "Fácil de burlar".

Mas obrigado por postar,

e ajudar na Área Delphi/VB...

 

~Águia

 

Como já disse antes, é o básico.

Pretendia implementar mais funções neles antes de terminar o prazo do concurso, mas, devido aos outros projetos que participo me puxarem mais, acabou nem dando tempo.

 

 

Ao menos, o pouco que ensinei, ensinei de qualidade, não apenas ctrl+c e ctrl+v de comandos que o titio da de mão beijada na bandeja, como tem muito por aí. Nem usei complementos extras.

Link para o comentário
Compartilhar em outros sites

Não é só Handle e Título de processos que faz um anti-cheat.

Um desse dai é facilmente burlado.

 

Tem que proteger a memória, monitorar alterações feitas nela, um anti-inject com exceções das dlls carregadas no jogo, é essencial também...

 

Não precisa criar com exceções, as DLLs são carregadas geralmente antes do programa em si começar, e suas função que serão usadas vão para o IAT, e ao decorrer do tempo eles geralmente não usam a LoadLibrary, segundo, acho muito mais fácil hookar o CreateRemoteThread que é tão excencial quanto o LdrLoadLibrary para injetar uma DLL...

 

Eu pensei nisso, mas não sei como monitorar a memória nem barrar api's muito menos ensinar.

 

Talvez eu vá aprender como é e adiciono no tópico depois.

Mas esses dois métodos são os básicos e servem como bases.

 

Monitorar a memória não é tão difícil, é só checar por valores improváveis como 9999999 e valores freezados que são geralmente como os hacks usam

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.