Como Montar um Trainer [ TuTorial ]

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como Montar um Trainer [ TuTorial ]

Mensagem por ~ luizDiow► em Dom Ago 15, 2010 11:20 am

1- Saiba o Mínimo do Delphi
2- Não de CtrlV & 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 “Portalcheats” o form vai enviar uma mensagem.

If FindWindow(nil,'Portalcheats')>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: "Portalcheats"
Vocês não concordam que ao invés de digitar 10 vezes "Portalcheats" é mais fácil digitar "PC" ?

É 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.


Creditos: FelipeGaspar

Se Copiar bote os créditos! Se gostar agradeça!

~ luizDiow►
[M]od [G]lobal
[M]od [G]lobal

Mensagens : 93
Pontos : 269
Agradecimentos : : 13
Data de inscrição : 14/08/2010
Localização : Italia

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Como Montar um Trainer [ TuTorial ]

Mensagem por The Palla em Dom Ago 15, 2010 11:35 am

Muito BOm , Gostei hein...

The Palla

Mensagens : 9
Pontos : 17
Agradecimentos : : 0
Data de inscrição : 15/08/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum