Olá vamos criar um mini trainer em Delph! Para criar esse tutorial:
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.
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 “Webcheats” o form vai enviar uma mensagem.
If FindWindow(nil,'WebCheats')>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: "WebCheats"
Vocês não concordam que ao invés de digitar 10 vezes "webcheats" é 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;"
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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
.
[img][Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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:
Agora que você viu praticamente tudo vamos começar com a parte da programação.
Declare as Seguintes variáveis globais:
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 )
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.
Creds
'AssKiller~ por tutorial e imagens
Felipexg por desenvolver funçoes inovadas em codigos Delphi
HackSO por fornecer hospedagem!
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 “Webcheats” o form vai enviar uma mensagem.
If FindWindow(nil,'WebCheats')>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: "WebCheats"
Vocês não concordam que ao invés de digitar 10 vezes "webcheats" é 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;"
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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
.
[img][Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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;
- 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;
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;
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.
Creds
'AssKiller~ por tutorial e imagens
Felipexg por desenvolver funçoes inovadas em codigos Delphi
HackSO por fornecer hospedagem!
Qua Fev 09, 2011 3:21 pm por lordgrotto007
» [Lançamento] Alessandro Menu 2.3 ATUALIZADO SEM DC - (25/11) Supe
Qua Fev 09, 2011 3:06 pm por lordgrotto007
» [Utilitário] Macro Atualizado e Funcional.
Qua Fev 09, 2011 2:50 pm por lordgrotto007
» [Hot-New]Sky3 Gerador De Cash Automatiko Versão 2.0
Qua Fev 09, 2011 2:39 pm por lordgrotto007
» ATENÇÃO FEXAMENTO E REABERTURA DA NOVA NC
Dom Fev 06, 2011 7:58 am por 'AssKiller~
» Rank novo avaliem
Sáb Fev 05, 2011 6:23 pm por 'AssKiller~
» Auto kil Funfando 100%
Ter Fev 01, 2011 1:08 am por →'Lucs~←
» VOVO TURBO 1.1F - no-recoil / no-reload / super bullets
Sáb Jan 22, 2011 11:54 pm por bone100
» Trainer GunBound Brasil + GamerzAimPro + GamerzBot v9.0.1
Qui Jan 20, 2011 5:48 pm por meutiopero
» new sing --'
Seg Jan 10, 2011 5:12 am por →'Lucs~←
» Sign que eu fiz para minha namorada Aduana avaliem
Seg Jan 10, 2011 5:11 am por →'Lucs~←
» Avalia Avatar e sign
Seg Jan 10, 2011 2:37 am por Aduana ♥ Terrypunk
» Avaliem minhas 2 sign
Sex Jan 07, 2011 11:37 pm por terrypunk
» Nova sing Avaliem ae --'
Qui Jan 06, 2011 1:23 am por →'Lucs~←
» Ranks novos avaliem
Sáb Jan 01, 2011 10:40 pm por →'Lucs~←
» Ganhar Dinheiro na Internet Gratuitamente
Ter Dez 28, 2010 7:45 pm por monge93
» DexGunZ NOVO SERVER PRIVATE
Qui Dez 23, 2010 5:56 am por →'Lucs~←
» Avaliem sign
Qui Dez 23, 2010 5:52 am por →'Lucs~←
» Avaliem sing
Qui Dez 23, 2010 5:50 am por terrypunk
» Oi galera vim postar meu MSN
Qui Dez 23, 2010 5:40 am por terrypunk
» Dicas Para Não Ser Banido !
Qua Dez 22, 2010 8:35 pm por 'Pedriinho~*
» [Tutorial]Jogando Com Phoenix
Qua Dez 22, 2010 8:25 pm por 'Pedriinho~*
» AvALIEM MEU AVATAR
Seg Dez 20, 2010 7:56 pm por →'Lucs~←
» AVALIEM " AVATAR"
Seg Dez 20, 2010 4:39 am por →'Lucs~←
» Atualizar o Gc quando estiver em manutenção !
Sáb Dez 18, 2010 12:50 am por alemao.