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.

A antiga arte de fazer Trainer


.Piece.
 Compartilhar

Posts Recomendados

Introdução

 

Este ensaio aborda o conceito de formadores em ambientes Windows9x no estilo FAQ.

Se o leitor precisa "esqueleto" um treinador prontas este é definitivamente o ensaio errado,

mas o autor aborda todos os temas que o leitor precisa saber para sua codificação / instrutor dela.

Desta forma, o leitor terá a possibilidade de se orgulhar de seu trabalho próprio e ele / ela não terá que mentir sobre os créditos.

 

Ferramentas necessárias

 

SoftIce (: isso é um pouco datado desde SoftIce é descontinuada, mas nenhum depurador deve fazer muito bem)

GameHack (: um buscador de memória)

compilador C

O leitor não precisa de qualquer bebida especial e / ou música. O autor não irá impor suas preferências sobre o leitor.

 

URL da Target / FTP

 

Treinador metas são geralmente jogos que podem ser encontrados em qualquer loja de jogos ou qualquer outro site distro principal.

O leitor já pode ter um ou dois jogos em casa. O autor mais utilizado Expendable nos exemplos.

 

História do Programa

 

 

Uma breve história dos formadores:

 

Era uma vez os grupos não só cracker crack. Eles codificados seu próprio intros, demos, treinadores ...

Enquanto havia grupos formadores cracker como foram codificadas.

Mais tarde, o grupo cracker parou de codificação e especializada em mudança jne / je to nop.

Alguns indivíduos conquistou o espaço livre e tentou construir algo parecido com uma cena treinador.

Hoje os grupos warez tentar reviver a glória dos velhos tempos, produzindo intros, demos e formadores de novo.

 

Ensaio

 

 

O que é um treinador?

 

Um treinador é um programa que permite manipular certos valores dos jogos, como pontos de vida, pontos de experiência, munição, créditos, tiberium, ouro, armaduras .... em tempo de execução. Em poucas palavras - Um treinador deixa o jogador fazer trapassa.

 

O que é treinador de um "mega"?

 

Um treinador mega é um treinador que permite fazer trapassa em vários valores.

Ela não só congela pontos de vida. Ela congela munição, tempo, pontos de vida, os créditos, os níveis de caçambas, acrescenta armas ou qualquer coisa.

 

O que significa "congelamento" significa?

 

"Congelamento" é o efeito de um jogador experiências quando um treinador pára de mudar os valores.

Isso pode ser feito modificando o código do jogo de uma forma que o valor não será acessado por mais ou atualização do valor em intervalos curtos. Outra maneira de "congelar" os valores é a alteração do código que acessa o valor.

 

Exemplo:

Se o código que drena os seus pontos de vida parecido com este:

«Sub [esi um C6FCF6], machado 'mudar para' mov [esi C6FCF6 1], 64 '

e você sempre vai ter 100 LP.

 

Como funciona um treinador?

 

Na maioria dos casos, um treinador definido reage sobre golpes de tecla (teclas). Se o direito fundamental é pressionado tentativas de "motor" do treinador para corrigir a memória do processo do alvo no endereço onde o valor desejado / code está situado.

 

Como eu atualizo a memória de um processo-alvo?

 

Isso não é segredo. Um lote de material pode ser encontrado neste tópico em vários livros, revistas, jornais ...

A idéia principal é utilizar a função de API Win32 WriteProcessMemory ().

A referência sates Win32 API

);

WriteProcessMemory BOOL (

hProcess HANDLE, / / identificador para processo cuja memória está escrito

lpBaseAddress LPVOID, / / Endereço para começar a escrever a

LPVOID lpBuffer, / / ponteiro para o buffer para gravar dados de

nSize DWORD, / / número de bytes a escrever

LPDWORD lpNumberOfBytesWritten / / número real de bytes gravados

 

Como faço para descobrir todos estes parâmetros?

 

1. parâmetro: alça para processo cuja memória está escrito

 

Um identificador para um processo pode ser obtido chamando a funções FindWindow (), GetWindowThreadProcessID () e OpenProcess () como este:

 

Código:

 

hWndTarget handle = FindWindow (NULL, "nome da janela de seu alvo");

DWORD dwProcessId;

GetWindowThreadProcessID (hWndTarget & dwProcessId);

hProcess HANDLE = OpenProcess (PROCESS_ALL_ACCESS, FALSE, dwProcessId);Se você não tiver certeza sobre o nome do alvo da janela de usar qualquer um desses utilitários pouco agradável, que lista os nomes das janelas ".

 

 

Observação:

Se você estiver usando OpenProcess () você deve usar CloseHandle () senão você também vai produzir um vazamento de memória pouco agradável. Fechando um processo de 'segurar não causar fechamento do processo associado!

Para uma descrição detalhada das funções acima consultar o "Anexo - Win32 funções utilizadas.

 

2. parâmetro: endereço para começar a escrever para

 

Para encontrar o endereço onde você tem que corrigir a memória do destino é a parte mais complicada de tudo isso.

Mas há ajuda. A maneira mais fácil de encontrar o endereço certo é usar GameHack 2,0

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

 

Este pequeno programa permite ao usuário fazer a varredura de uma memória traget para valores especificados e mostra os endereços associados. Quando as alterações de valor desejado do usuário GameHack permite digitalizar os endereços encontrados para o novo valor. Esta espécie forma GameHack os endereços errados até que haja apenas um deixou poucos.

Obtê-lo. Dê uma olhada nisso. Para compor formadores é uma ferramenta muito valiosa. Claro que você pode escrever como um scanner de memória sobre o seu próprio padrão e adicionar alguns avançados métodos de verificação. Não é muito difícil se você tiver codificado seu próprio treinador já está metade do caminho para baixo. Criando a interface do usuário é o pior de tudo isso.

Enfim, use GameHack para encontrar o endereço onde as lojas de seu alvo o valor desejado.

Parece fácil, não é? Bem, ele é, mas você pode enfrentar alguns problemas confiando somente em endereços de GameHack. O problema é que você não pode tomar por certo que os valores desejados são sempre armazenados nos mesmos endereços.

 

Exemplo:

Você pode utilizar os endereços encontrados com GameHack para treinar, por exemplo Heroes of Might & Magic 3, que funciona bem em um cenário único ou da primeira campanha, mas depois, na campanha seguinte, ou no modo multi-jogador a alterações de layout de memória ou seja, os endereços dos valores mudam e se tornam inúteis.

 

Você vê que é necessário verificar se os endereços de trabalho o tempo todo não é o único dos cinco primeiros minutos.

Se o endereço (s) a mudança é uma boa idéia não para corrigir o valor, mas o código que acessa o valor. O endereço do código pode ser facilmente localizado, colocando um breakpoint no endereço de memória do valor. ('W endereço bpm ", ie, ou' BPR addr1 addr2 w 'em SoftIce).

 

Exemplo:

Você encontrou com GameHack que armazena seu alvo pontos de vida em uma palavra no endereço 0x1C6FCF6.

Comece o seu destino.

Defina 'w 1C6FCF6 bpmw "um ponto de interrupção em SoftICE.

Resume o seu alvo.

Quando os pontos de sua vida mudar SoftIce aparece em um local como este:

 

: 004657FA 668986F6FCC601 mov palavra ptr [esi C6FCF6 01], ax

 

Essa linha de código altera o valor de pontos de sua vida. Para parar o programa de extermínio simplesmente nop-lo por escrito 7 vezes 90 (nop) para tratar 4657FA. Se você deseja desativar o seu treinador restaurar o original em bytes 4657FA endereço.

 

Claro que há outras maneiras de localizar o endereço certo - a verificação de padrões specifc ou mesmo anúncio mortos - mas eu acho que você tem a idéia, não é?

 

3. parâmetro: ponteiro para o buffer para gravar dados de

 

Um buffer com os dados para escrever a partir de parecido com isto:

 

codigo Code:

 

BYTE bNewData[]={0x90,0x90,0x90,0x90,0x90,0x90,0x90}

 

Sim, isso é realmente tudo. Basta criar um array mantendo os bytes que você quer escrever. Preste atenção à ordem de bytes da Intel!

 

4. parâmetros: número de bytes a escrever

 

Conte seus bytes ou deixar que o sizeof () função contá-las para você:

 

codigo

DWORD dwNewDataSize = sizeof(bNewData)

 

5. parâmetros: número real de bytes gravados

 

Nós não queremos saber. Configurá-lo para NULL.

 

"Motor" O treinador completa deverá ser parecido com este:

 

codigo

BYTE bNewData[]={0x90,0x90,0x90,0x90,0x90,0x90,0x90};

DWORD dwNewDataSize = sizeof(bNewData);

HANDLE hWndTarget = FindWindow( NULL, "Expendable");

DWORD dwProcessId;

GetWindowThreadProcessId(hWndTarget, &dwProcessId);

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);

WriteProcessMemory(hProcess, 0x4657FA, &bNewData, dwNewDataSize, NULL);

CloseHandle(hProcess)

 

Sim, é tão simples assim. Você já treinou pontos Expendable vida.

«Apêndice - um registro ao vivo 'para obter uma breve descrição de todo o processo.

 

 

Como faço para realizar hotkeys?

 

Usando a API do Win32 você pode perceber hotkeys de várias maneiras.

 

1. Você pode usar RegisterHotKey (),

mas você não deve porque ele não funciona de confiança em cada caso.

 

2. Você pode usar SetWindowsHook ().

Ele funciona de confiança na maioria das vezes, mas você tem que codificar uma DLL para usá-lo para fins de treinador. Se outro processo é iniciado após o seu treinador que usa SetWindowsHook () e também não põe CallNextHook () seu atalho será desativado. Veja a referência da API Win32 para obter mais detalhes.

 

3. Você pode usar GetAsyncKeyState ().

A referência Win32 API afirma:

 

A função GetAsyncKeyState determina se uma chave é para cima ou para baixo no momento da função é chamado, e se a tecla foi pressionada após uma chamada anterior para GetAsyncKeyState.

 

Código:

SHORT GetAsyncKeyState(

int vKey // virtual-key código

 

Parâmetros:

 

vKey - Especifica um dos 256 possíveis códigos de virtual-chave.

«Apêndice - Todas as teclas virtuais com seus valores 'Veja.

 

Valores de retorno:

 

Se a função tiver êxito, o valor de retorno especifica se a tecla foi pressionada desde a última chamada para GetAsyncKeyState, e se a chave está atualmente cima ou para baixo ....

 

Para usar essa função para teclas de atalho a única coisa que você tem a fazer é de voto. Sondagem significa deixá-lo correr em um loop.

Se você chamá-lo em um loop como:

 

while (1)

{

if (GetAsyncKeyState (VK_F12)) / / se F12 é baixo ou estava para baixo desde a última chamada

{

trem (); / / chama o mecanismo de treinador

 

ele irá consumir muito se não todo o tempo da CPU. Por isso, é importante o tempo 'loop' com cuidado.

Um ciclo cronometrado é nada mais do que uma função de retorno do temporizador. Você pode perceber como este

 

Code:

 

void CALLBACK PollKeys (HWND hWnd,UINT uMsg,UINT idEvent,DWORD dwTime)

{

if (GetAsyncKeyState(VK_F12)) // if F12 is down or was down since the last call

{

train(); // call the trainer engine

 

Agora você precisa ativar o timer com:

 

Código:

 

SetTimer (hWnd, 666, 1000, (TIMERPROC) PollKeys);

 

Parâmetros:

 

hWnd = janela do seu treinador pega (HANDLE)

666 = um identificador único (UINT)

1000 = intervalo de timer em ms (UINT)

PollKeys = endereço do processo do timer (TIMERPROC)

 

Geralmente é uma boa idéia para verificar a disposição das teclas do jogo antes de escolher sua hotkey ou seja, não use F5 se o jogo usa esse exemplo para quicksave.

 

Observação:

O retorno do temporizador para o hotkeys consome tempo de CPU sempre que é chamado. Você não deve definir o intervalo de timer para períodos muito curtos (<75 ms) para evitar a lentidão da meta de execução. Normalmente, um intervalo de cerca de 1000 ms é uma escolha aceitável.

Veja o 'apêndice - Win32 funções utilizadas "para obter informações detalhadas.

 

Isso é tudo?

 

Sim! Isso é tudo que você precisa saber para codificação formadores. Você sabe como encontrar o endereço certo, como a memória de patch e como percebem hotkeys. Você pode precisar trabalhar o endereço constatação parte um pouco, mas com GameHack ao seu lado em breve você vai descobrir como as coisas realmente são fáceis.

Tudo o que resta a fazer é montar o que você aprendeu em um programa de trabalho Win32 e pronto é o seu treinador. Você domina o seu caminho para o Olimpo de deuses trainer 'a.

 

Observação:

O autor tentou fazer isso o mais curto e simples possível. Este é o treinador mínimo (isto é um atalho e memória patch)! Apenas um ponto de partida. Se você acha que o seu treinador não vai funcionar porque desta forma 'você precisa de um scanner de memória construída ou o uso da interface de depuração ou qualquer outra coisa, bom, muito bom: CÓDIGO VOCÊ MESMO!

 

 

awe galera os devidos creditos foram para

 

why06

 

Eu peguei esse topico la do estados unidos

 

eu apenas traduzi para brasileiro

 

quem quiser agradecer agradeça ^^

Link para o comentário
Compartilhar em outros sites

MPGH.NET ?

Huum...

Pois bem, google tradutor não significa que traduziu para o portugues...

Um treinador mega é um treinador que permite fazer batota em vários valores.

Batota, é?! Crie vergonha na cara e traduza por si próprio, sem google tradutor.

Link para o comentário
Compartilhar em outros sites

Bom a expressão "batota' significa fazer bagunça ou algu do tipo e o treinador citado e no caso o Trainer espero que vc traduzi por si próprio pois erros assim podem prejudicar os leitores e a quem for tentar fazer um.

0CHhtst.png

Link para o comentário
Compartilhar em outros sites

Ótimo tópico.

Muito bem explicado pra quem quer começar a fazer seu Trainer.

Tópico totalmente detalhado, parabéns maniin!

Continue assim que você vai longe'

35HI8SZ.png

"Se existe um inferno, eu já tenho um assento reservado na primeira fila" - Dexter

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.