Ir para conteúdo
Faça parte da equipe! (2024) ×

Source de códigos para hackers do jogo AVA


Ben Kenobi
 Compartilhar

Posts Recomendados

O conteúdo deste tópico não é de minha autoria, mas é de um usuário conhecido como Jabberwo0ck. Peço que para evitar erros durante o processo ao realizar o que este tópico propõe, que a leitura dele seja feita com atenção.

 

Para que seja efetuada com sucesso a operação, é necessário conhecimento prévio sobre programação C++, até para que possar ocorrer uma boa interpretação da parte do usuário que ler este tópico.

 

O Conteúdo

 

O código estará no link abaixo:

 

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

 

Para saber se o download deu certo, verifique se no bloco de notas o conteúdo começa com /* e termina com return true; } (não necessariamente nessa posição).

Não se faz necessário scan pelo fato de ser um arquivo pequeno do bloco de notas e é algo que o próprio scan do 4Shared pode detectar com êxito.

Nota: ele é em inglês mesmo

 

Agora irei re-lembrar a vocês algumas funções:

 

CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)main, NULL, 0, NULL);

 

O "CreateThread" faz é criar um novo segmento no processo em si. A vantagem disto é que a função é entregue a essa função será multitarefa. Aqui algumas informações do Wiki:

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

 

SetThreadPriority(setting, THREAD_PRIORITY_BELOW_NORMAL);

 

Bom, isto faz com que a prioridade do thread desça para 1 abaixo do normal.

Se você tem um "loop" que refresca a cada 1ms a cada tempo, então talvez você vai achar esse código útil para fazer com que não haja lag no jogo.

 

char buf[255];

sprintf_s(buf, "%d", address);

MessageBox(NULL, buf, "ERROR", MB_OK | MB_ICONERROR);

 

Este pedaço de código permite com que você imprima um número na tela, como você não pode fazer isso através do padrão com a função de "MessageBox".

 

IsBadReadPtr((void*)address, 4);

IsBadWritePtr((void*)address, 4);

 

Esta função "IsBadReadPtr" verifica se o endereço é acessível e pode ser lido, é útil se o seu ponteiro no "Cheat Engine" não é sempre mostrado. Além disso, se você usá-los corretamente eles podem evitar os famosos "crashes". O outro faz o mesmo, exceto que também verifica se pode escrever para o endereço.

 

Estas funções retornam ao zero em caso de sucesso ou diferente de zero em caso de falha.

 

if (GetAsyncKeyState(VK_END) &0x8000)

 

Este código verifica se no momento em que o usuário executar o código, este usuário pressionou a tecla END. Você pode alterá-lo para outras chaves.

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

 

while (!(ClientOffset = (unsigned long)GetModuleHandle(NULL)))

Sleep(100);

 

Este vai definir "ClientOffset" para sempre 0x400000 ( No caso do jogo AVA, claro, não sabemos se sobre jogos diferentes). Para usar o endereço (ou ponteiro) que você encontrou no "Cheat Engine", você precisa adicionar esse número para ele. É como um deslocamento adicional (O deslocamento do módulo).

 

É possível alterar "NULL" (Nulo) neste código para "AVA.exe" que irá ser o mesmo.

 

--

 

Os demais códigos vocês podem explorar posteriormente, como aqui temos muitos tópicos e tutoriais sobre Dlls e C++, creio que com este conteúdo, você já deu um grande "passo".

 

Notas Adcionais:

Agora sobre o ponteiro no jogo que eu já está naquele código, é um endereço padrão (aparece em uma cor verde no CE) que mostra o número 1 se o usuário estiver em jogo e 0 se ele não estiver.

 

Todas as vezes em que o jogo patchear, for corrigido, os ponteiros irão ser modificados, logo você terá que atualizá-los.

 

Para compilar este conteúdo é necessário o Microsoft Visual Studio 2010, com certeza você pode fazer com os outros, mas é recomendável este só!

 

Para finalizar, o prefixo está em 0x, para que o compilador saiba que é um número Hexadecimal e isto irá converter para um outro tipo.

 

FAQ - Perguntas frequentes

 

P: Meu jogo caiu quando eu injetei a Dll, o que eu faço?

R: Bem, ou você não colocou o diretório (ponteiro) direito ou ele estava no modo leitura quando ele não está legível ou gravável.

 

P: Como podemos ler a partir de um endereço ou escrever nele quando encontramos no "C.E"?

R: Por exemplo, vamos ver este endereço padrão:

 

mcQb2.png

 

E lemos mais ou menos assim:

 

unsigned long address = 0x1B8B054 + ClientOffset;

int content = *(int*)address;

 

Escreva para:

 

unsigned long address = 0x1B8B054 + ClientOffset;

*(int*)address = 12345;

 

Nota: sobre a função "ClientOffset", já foi explicado acima.

 

Q: E se tivermos um deslocamento do/para o endereço? Quero dizer, um ponteiro, diretório?

R: Se o deslocamento for neste modelo: A2B, fazemos semelhantemente à isto:

 

Leitura:

 

unsigned long address = 0x1B8B054 + ClientOffset;

address = *(unsigned long*)address + 0xA2B;

int content = *(int*)address;

 

Em escrito:

 

unsigned long address = 0x1B8B054 + ClientOffset;

address = *(unsigned long*)address + 0xA2B;

*(int*)address = 12345;

 

Enfim, espero que tenham gostado do conteúdo e que saibam desfrutar dele, obrigado.

"Well over there there's friends of mine

What can I say? I've known 'em for a long, long time

And they might overstep the line, but I just cannot get angry in the same way.."

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • 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.