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.

Como Criar Seu Trainer Funcional


-SaSuKe
 Compartilhar

Posts Recomendados

Tutorial Ensinando a criar um trainer funcional ao invés de usar o ctrl + c ctrl + v

 

1- Saiba o Mínimo do Delphi

2- Não de Ctrl V & C nas Funções,reserve um pouco do seu Tempo para ler e entender o que cada Função faz.

3- Se não entendeu,leia novamente.

 

Vamos iniciar,antes vou explicar como Funciona.

 

Funcionamento Geral

 

Um Trainer tem um processo básico que altera um valor na memória. Esse valor pode ser a quantidade de vida que você tem num Jogo ou até mesmo um numero qualquer. A memória no caso pode ser o Jogo,um software qualquer.

 

A memória atribui um endereço em cada valor,esse endereço pode ser pego utilizando qualquer software que "desmonte" a memória do jogo,o mais usado é o cheatengine que já faz praticamente tudo,ele lê e altera o valor para você.

 

Agora vamos para parte de programação.

 

Funções "writeprocessmemory()" e "readprocessmemory()"

 

Essas são as Funções que nos vamos Utilizar,logicamente essas são as principais. A função "writeprocessmemory()" como a própria função já diz ela escreve um processo na memória,ou seja ela escreve um novo valor num determinado endereço.

A função "readprocessmemory()" faz a mesma coisa,a única diferença é que ao invés de escrever ela lê o endereço na memória,pode ser usado para verificar o valor atual do endereço.

 

Função“FindWindow”

 

Essa Função vai nos auxiliar na procura de nossa Janela. Essa Função depende de uma Operação Lógica para Funcionar, ou seja, “<=0” e “>0” .

No exemplo abaixo temos que se achar a janela com o nome “xxxxxxxxx” o form vai enviar uma mensagem.

 

If FindWindow(nil,'xxxxxxxxx')>0 then begin

Showmessage(‘Achou Janela’); end;

 

No exemplo acima utilizamos “>0” o pode ser usado caso não ache a janela. “<=0” ( para Utilizar é só substituir)

 

Variáveis "ler" "escrever"

 

Nos vamos Utilizar algumas variáveis que vão nos auxiliar no trainer Essas Variáveis podem ser alteradas para qualquer nome,para Facilitar vamos Utilizar as expressões "ler" e "escrever".

 

A pergunta que mais é feita e como se criar uma variável e para que ela serve. Vou explicar os 2 únicos jeitos de trabalhar como uma variável no Delphi.

 

O que é uma variável?

 

Variável é uma Função que vai criar um Nome para um único destino. Ex:

Temos o Nome: "xxxxxxxxx"

Vocês não concordam que ao invés de digitar 10 vezes "xxxxxxxxx" é mais fácil digitar "WC" ?

 

É basicamente essa a função de uma variável, dar um atalho a outra função, no exemplo abaixo é utilizando o componente edit1.

 

Temos a função showmessage() e queremos dar uma mensagem sempre que for digitado algo no edit1.text,só que vamos utilizar também o que for escrito no edit1 para mudar o nome de uma Label,ao invés de digitar:

 

showmessage(edit1.text) e label1.caption:=edit1.text

podemos criar uma variável com o nome texto e fazer assim:

 

showmessage(texto) e label1.caption:=texto

A variável nos facilitou muito.

 

Agora você deve estar se perguntando,como que eu crio uma variável? no exemplo acima você viu apenas como utilizar agora vou ensinar como criar no delphi.

 

Lembrando que eu citei que existe 2 jeitos de se criar e utilizar uma variável.

 

 

1º jeito de se criar:

 

Na Imagem abaixo vemos a parte "var" destacada e logo em baixo "form1:Tform1;"

 

 

Esse é o 1º jeito de inserir uma variável.

Para inserir outra variável é só colocar: Nome:string;

Ex: Texto:string;

 

Para Utilizar essa variável você deve indicar o que ela faz na Função de um botão ou de um componente qualquer. Ex:

 

 

Na imagem a variável texto é utilizada ao invés de "edit1.text" e logo em seguida temos uma Função qualquer mostrando essa variável.

 

LEMBRE-SE: a variável "texto" pode ser o que você quiser,pois você a declarou "globalmente" você pode por exemplo nesse mesmo projeto em outra função colocar que Texto vai ser edit2.text a única coisa que muda é que você tem que colocar texto:=edit2.text;.

 

 

2º Jeito de criar uma variável:

 

Esse jeito é o mais Utilizado,no primeiro jeito nos declaramos uma variável global,ou seja ela pode ser Utilizada em muitos caso. Já nesse ele é somente para uma Função de um Componente.

Na Imagem abaixo você pode notar que temos “var” antes de “Begin” e logo em seguida: Texto:string; depois Begin e a sua Função Comum

.

 

 

 

Esse é o 2º Jeito de se Declarar uma variável.

Encerramos aqui essa parte de variáveis e vamos iniciar nossa próxima parte.

 

Inserindo os Componentes

Você não é obrigado a Utilizar a mesma maneira que na imagem abaixo,seja criativo e arrume seu Form de um jeito legal, mas é claro,utilizando os componentes citados.

 

 

Components:

Edit1 ; Edit2; Edit3 ; Label1 ; Label2; Label3 ; Label4 ; Label5; Label6; Timer1; XP ; button1.

 

Agora que você viu praticamente tudo vamos começar com a parte da programação.

 

Declare as Seguintes variáveis globais:

Código:

PH : THandle;

Código:

PID, ThID, R : DWORD;

Escrever : DWORD;

H : THandle;

Vamos agora inserir a Função do nosso Timer:

Código:

var

ValorAtual:integer;

Ler:dword;

ver:integer;

begin

If FindWindow(nil, 'Janela do Jogo')<=0 then

begin

label1.Caption:='Não Achou Processo'

end;

 

If FindWindow(nil,'Janela do Jogo')>0 then

begin

ver:=StrToInt(edit4.Text);

label1.Caption:='Achou Processo';

H := FindWindow(nil, 'Janela do Jogo');

ThID := GetWindowThreadProcessId(H, @PID);

PH := OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);

readprocessmemory(PH,pointer(ver),addr(ValorAtual),4,Ler);

label2.Caption:=inttostr(ValorAtual);

end;

Deixar o Timer Ligado e com 1 Segundo.

 

Note que na Função temos “ Janela do Jogo “ você deve substituir pela “Caption” ( Nome da janela) do Jogo que você vai Utilizar o Trainer.

 

Agora Para Finalizar vamos Colocar na Função do Nosso Botão “editar” ( button1 )

Código:

var

NovoValor:integer;

Novoendereco:integer;

Escrever:dword;

begin

NovoValor:=StrToInt(edit1.Text);

Novoendereco:=StrToInt(edit2.Text);

writeprocessmemory(PH,pointer(Novoendereco), addr(NovoValor),4,escrever);

end;

Feito isso você deve estar agora com o Trainer Funcionando perfeitamente.

Esse Tutorial não tem como Objetivo Montar para um game certo,pois é você quem deve fazer,eu estou apenas aqui para ajudar e ensinar.

Existe muitos jeitos de montar um Trainer é claro,esse é um jeito simples mostrando como Utilizar as Funções básicas de um Trainer.

 

Créditos: Felipe

  • Curtir 1
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.