NewCheats

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
NewCheats

Melhorando a cada instante

Bem Vindo - New Cheats
Vagas para Equipe
Regras importantes

    Fixo: [Tutorial] Como Montar um Trainer

    'AssKiller~
    'AssKiller~
    Administrador
    Administrador


    Mensagens : 266
    Agradecimentos! : 10842
    Data de inscrição : 24/06/2009

    Fixo: [Tutorial] Como Montar um Trainer Empty Fixo: [Tutorial] Como Montar um Trainer

    Mensagem por 'AssKiller~ Seg Jun 29, 2009 11:46 pm

    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.

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


    Creds

    'AssKiller~ por tutorial e imagens
    Felipexg por desenvolver funçoes inovadas em codigos Delphi
    HackSO por fornecer hospedagem!

      Data/hora atual: Qua maio 08, 2024 4:31 pm