Hack Anti-Hacks, Cheats, Aimbots Para Qualquer Jogo Online Aprenda a Fazer Cheats

Tira todas suas dúvidas no chat online

TEMPO DE LEITURA: 2 MINUTOS

No artigo passado falei sobre ponteiros e mostrei como acessar a memória local(do processo atual) com os mesmos. Mas isso não é o suficiente para acessar a memória de outros processos, pois como mencionado anteriormente o sistema operacional não permite, não de forma direta(como demonstrado no artigo anterior).

Neste artigo lhe apresentarei a função da API do Windows chamada ReadProcessMemory.

Leitura e tratamento de memória é uma poderosa ferramenta. Muitos gostariam de saber, mas poucos sabem como fazê-lo e, principalmente, tratar o resultado.



Com esta API torna-se capaz a leitura de dados da memória de um processo específico. Exatamente, poderemos ler e tratar a memória de outro processo.

ReadProcessMemory é um problema para muitos programadores inexperientes que almejam grandes criações, em sua maioria Memory Scanners(Cheat Engine, por exemplo).


Segundo o MSDN, as especificações da ReadProcessMemory são:


1
2
3
4
5
6
7
BOOL WINAPI ReadProcessMemory(
  __in   HANDLE hProcess,
  __in   LPCVOID lpBaseAddress,
  __out  LPVOID lpBuffer,
  __in   SIZE_T nSize,
  __out  SIZE_T *lpNumberOfBytesRead
);

Sendo:
  • hProcess – Handle do processo alvo
  • lpBaseAddress – Ponteiro do Address alvo
  • lpBuffer – Pointeiro do buffer alocado no processo atual para receber os dados lidos
  • nSize – Tamanho, em bytes, da memória para ser lida
  • lpNumberOfBytesRead – Pointeiro para uma variável DWORD que retornará a quantidade de bytes lidos 

OBS: hProcess deve ter acesso do tipo PROCESS_VM_READ. (Para isso, utiliza-se a API OpenProcess).

ReadProcessMemory lê dados (bytes) de uma área da memória em um processo, se esta área estiver acessível (Com uma das seguintes permissões: PAGE_READONLY, PAGE_READWRITE, PAGE_WRITECOPY, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE, PAGE_EXECUTE_WRITECOPY).



Se a função tiver êxito, o retorno é diferente de zero. Se falhar, o retorno é zero.


Funciona da seguinte forma:


  • Após a leitura, faz-se o tratamento de dados conforme as necessidades do usuário. 

Nesta parte está o problema da maioria. Os tipos Byte, Word, DWORD, QWORD, ANSI String e UNICODE String podem ser tratados diretamente. Porém, quando se trata tudo como um data stream, deve-se ter em mente que o processador armazena os bytes na ordem inversa.

Vale observar que mesmo com retorno zero, lpNumberOfBytesRead pode ter retornado diferente de zero e os dados podem, e devem, ser tratados.

Para facilitar o aprendizado, irei disponibilizar abaixo uma Source Code em Pascal feita no Delphi7 pelo Yuh L. a qual exemplifica muito bem a leitura e tratamento de dados(de todos os tipos citados anteriormente) com ReadProcessMemory.

Faça o download do projeto de exemplo:


Aprenda também assistindo o vídeo que preparei especialmente para vocês do blog que desejam criar seus hacks em 4 Semanas

[VIDEO] Ler memoria de outro processo – ReadProcessMemory Aula 04 Como Fazer Hacks Para Qualquer Jogo



Você quer aprender mais sobre o assunto? Ler memoria de outros processos para poder criar seus cheats começando do zero absoluto? Então Clique no BOTÃO ABAIXO!



Quaisquer dúvidas comentem no chat online que lhe ajudarei.
Abraço,

Lipinf.

Pesquisar

Quais Cheats Vocês Desejam?

Contato

Nome

E-mail *

Mensagem *