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.

[TuTo] Como Fazer um Aimbot.


cheatsbrasil1
 Compartilhar

Posts Recomendados

Ola Web Cheats .

 

 

ATENÇÃO!

OS SMYLEIS ENCONTRADOS NOS CÓDIGOS CORRESPODEM A CODIFICAÇÃO!

 

Iae galera hoje trago para voces um tutorial da mpgh feito pelo mark0108 de como fazer um aimbot! Lembrando que tem que ter MUITA paciencia e MUITA concentração!

 

Requisitos : ( Todos os downloads podem ser encontrados facilmente no google )

 

Memory Searcher ( Eu uso T-Search )

C / C + + Compiler (eu uso o VC + +)

Jogos FPS ( Aqui seria o CrossFire )

 

O conhecimento dos seguintes assuntos também ajuda:

Como a memória é armazenada (estruturas de compreensão dentro de um jogo)

Como a pesquisa de endereços

Ponteiro buscando resolver DMA dentro para fora trainer

Um monte de tempo e paciência, e alguns conhecimentos de matemática, incluindo triganometry e senso comum

O conhecimento de C / C + + é VITAL

 

 

Bem ... para começar, eu acho que explica a base de como vai funcionar o aimbot é uma boa idéia. Eu estava pensando sobre alguns métodos diferentes sobre como fazê-lo, mas foi um pouco confuso a respeito de para as idades. Era óbvio (para mim pelo menos), que teríamos de obter a posição inimigos. Mas era o que fazer com o que me confundiu, eu não sabia como usar esses dados para minha vantagem e definir minha mira nele ... finalmente thosee anos de matemática na escola entrou em cena.

 

O que devemos fazer é começar a nossa posição por coordenadas, em X, Y e Z (ou Leste / Oeste, Norte / Sul e altura), eo mesmo para o inimigo. Com isso, podemos trabalhar a nossa ângulo relativo entre o norte (ou um ponto diferente, que vem mais tarde), o nosso jogador, e inimigo. Então, no final de tudo, nós temos o nosso ângulo de apontar para (fora da América do Norte), a fim de olhar para o inimigo. Este é então usado para definir o nosso olhar de rotação para o inimigo. Então nós fazemos o mesmo com a altura (entre um ponto que é sempre em frente de nós, o nosso jogador, eo inimigo) para obter o ângulo precisamos objetivo up / down.

 

Eu, provavelmente, apenas pregou alguns de seus braincells tentando fazer você entender isso, mas não se preocupe, espero que todos saem um pouco mais clara. Agora, isso é mais da teoria sobre como ele funciona, é hora de começar a realmente fazê-lo.

 

Como eu disse, esse é o caminho * I * fazendo aimbots, e para começar com as funções que tenho três em branco :

 

Citação:

PLAYER_DATA GetMyPlayerData (void) PLAYER_DATA GetPlayerData (BYTE PlayerNumber) void SetCrosshairOnEnemy (BYTE PlayerNumber)

PLAYER_DATA? Isso!, para tornar as coisas mais arrumadas na minha programação, eu gosto de usar algumas estruturas, bem como funções. Minha estrutura PLAYER_DATA contém informações valiosas sobre um jogador. Tais como:

 

Citação:

typedef struct (_PLAYER_DATA baseadd DWORD; / endereço / base desta corrente DWORD coordEW jogador, / Leste / Oeste (X) co-ord coordNS DWORD; / norte / sul (Y) co-ord coordUD DWORD; / Cima / Down (Z) co-ord coordEWa DWORD / / O endereço dos jogadores EW co-ord coordNSa DWORD / / O endereço dos jogadores NS ord DWORD coordUDa-co / / O endereço dos jogadores UD (up / down wtf .. eu estava pensando quando essa nomeação) co-ord DWORD lookX / / Os jogadores do eixo olhar X (o que vai mudar se você mover o mouse lado a lado) DWORD olhe / / Os jogadores do eixo Y olhar (o que vai mudar se você mover o mouse para frente e para trás) lookXa DWORD / / O endereço do olhar X DWORD lookYa / / O endereço da Y olhar char nome; / / Armazena o nome dos jogadores atuais DWORD NAMEA / / O endereço do do nome dos jogadores atuais PLAYER_DATA);

Eu realmente não sei por que colocar todos os endereços para tudo na estrutura, porém o inferno, poderia vir a utilizar quando fazendo algo um dia. Todas as coisas de lá virá a utilizar quando fazendo nosso aimbot, então aqui está como a busca de cada um deles (em pelo menos DFX).

 

O mais fácil para começar é com o nome, use a busca Artmoney do Texto

Co-ords:

NS - Move para o norte, procura aumentou, sul movimento, diminuição da procura

EW - Move leste, busca maior, a oeste movimento, diminuição da procura

UD - Move up (uma colina escada /), busca aumentar, mover para baixo, procura diminuiu

LookX - Move esquerdo do mouse / direita, pesquisa mudou ... definir o intervalo de pesquisa de todo o addies outras estreitas busca para baixo (este valor pode ser diferente para DFX. Em DFX, 0 foi o leste, e aumentou à medida que fui anti -horário até que você tem que, pouco antes do leste, que foi 0xFFFFFFFF)

Olhe - Mova o mouse para frente / trás, pesquisa mudou

 

Eu realmente não sei por que colocar todos os endereços para tudo na estrutura, porém o hell, poderia vir a utilizar quando fazendo algo um dia. Todas as coisas de lá virá a utilizar quando fazendo nosso aimbot, então aqui está como a busca de cada um deles (em pelo menos DFX).

 

O mais fácil para começar é com o nome, use a busca Artmoney do Texto

Co-ords:

NS - Move para o norte, procura aumentou, sul movimento, diminuição da procura

EW - Move leste, busca maior, a oeste movimento, diminuição da procura

UD - Move up (uma colina escada /), busca aumentar, mover para baixo, procura diminuiu

LookX - Move esquerdo do mouse / direita, pesquisa mudou ... definir o intervalo de pesquisa de todo o addies outras estreitas busca para baixo (este valor pode ser diferente para DFX. Em DFX, 0 foi o leste, e aumentou à medida que fui anti -horário até que você tem que, pouco antes do leste, que foi 0xFFFFFFFF)

Olhe - Mova o mouse para frente / trás, pesquisa mudou

 

Você deve ser capaz de obter o endereço base de jogadores de perto o suficiente de qualquer destes, e um ponteiro para obtê-lo no jogo. Eu uso dois ponteiros, um que aponta sempre para o leitor 0 (ou 1, o primeiro player de memória) "endereço base s, e uma que sempre aponta para o endereço base do meu jogador. Agora nós podemos modificar o GetMyPlayerData e funções GetPlayerData para nos trazer esta informação:

 

No topo do C + +, que define as bases:

 

Citação:

# Define MBASE 0xBD63D8 / MBASE / = minha base, sempre tem o meu endereço de base jogadores # define HBase 0xB0D228 / HBase / = Host Base, sempre detém º / / / PLAYER_DATA GetMyPlayerData (void) (PLAYER_DATA Player / / Criar um PLAYER_DATA branco struct ZeroMemory (& Player, sizeof (PLAYER_DATA)); / Iniciado tudo a 0 (graças L. Spiro, este resolveu alguns problemas) Peek ((void *) MBASE, (void *) & Player.baseadd, 4); / / Get nossos jogadores Base Address do ponteiro Player.coordEWa = Player.baseadd + 0x8, / / Pega todos os addies para tudo ... o 0x8, 0xC e merda são os offsets que encontrei para DFX Player.coordNSa = Player.baseadd + 0xC ; Player.coordUDa = + 0x10 Player.baseadd; Player.lookXa = + 0x14 Player.baseadd; Player.lookYa = + 0x18 Player.baseadd; Player.namea = + 0xF4 Player.baseadd; Peek ((void *) Player.coordEWa , (void *) & Player.coordEW, 4); / / Agora nós temos todas as addies, lido a informação de todos eles Peek ((void *) Player.coordNSa, (void *) & Player.coordNS, 4); Peek ((void *) Player.coordUDa, (void *) & Player.coordUD, 4); Peek ((void *) Player.lookXa, (void *) & Player.lookX, 4); Peek ((void *) Player.lookYa , (void *) & Player.lookY, 4); Peek ((void *) Player.namea, (void *) & Player.name, 15); retorno Player / / Dê PLAYER_DATA nosso Player, como o valor de retorno) / / / PLAYER_DATA GetPlayerData (BYTE PlayerNum) / / Leva o número do jogador como param (PLAYER_DATA Player; ZeroMemory (& Player, sizeof (PLAYER_DATA)); Peek ((void *) HBase, (void *) & Player.baseadd, 4) ; Player.baseadd Player.baseadd = + (* PlayerNum 0x388) / / 0x388 é a diferença entre os jogadores, começando com um jogador Player.coordEWa = 0x8 + Player.baseadd; Player.coordNSa = + 0xC Player.baseadd; Player. coordUDa = Player.baseadd + 0x10, 0x14 = + Player.lookXa Player.baseadd; Player.lookYa = + 0x18 Player.baseadd; Player.namea = + 0xF4 Player.baseadd; Peek ((void *) Player.coordEWa, (void *) & Player.coordEW, 4); Peek ((void *) Player.coordNSa, (void *) & Player.coordNS, 4); Peek ((void *) Player.coordUDa, (void *) & Player.coordUD, 4) ; Peek ((void *) Player.lookXa, (void *) & Player.lookX, 4); Peek ((void *) Player.lookYa, (void *) & Player.lookY, 4); Peek ((void *) Player . NAMEA, (void *) & Player.name, 15); retorno Player / / /

Agora que fizemos nossas funções para coletar todos os dados que precisamos, é hora de chegar ao cerne do aimbot. Tenho um sentimento que este vai ser um monte de leitura, por isso, se eu fosse você eu iria fazer um lanche e uma bebida ou algo assim, em seguida, voltar.

 

conhecimento matemático é necessário para fazer isso! Se você é inútil em matemática, e ainda a leitura, você também é inútil em Inglês para não entender as exigências de conhecimentos no topo. Vamos começar com o olhar

 

Porque DFX funciona em torno do ponto Oriente (, enfrentando diretamente a leste = 0x00000000/0xFFFFFFFF), todos os nossos cálculos serão feitos fora dela. Para ajudar a compreensão com este tutorial, vou incluir algumas snazzy pouco desenhos photoshuppered, cortejar.

 

O aimbot funciona em quatro setores. Isso torna as coisas mais fáceis quando descobrir distâncias. Aqui estão os setores e como determinar o setor é um inimigo em:

 

Setor 1 = Sudeste da nossa posição

Setor 2 = Sudoeste da nossa posição

Setor 3 = Noroeste da nossa posição

Setor 4 = Nordeste da nossa posição

 

Então, vamos adicionar esses setores para o nosso código fonte. Note que também temos de dizer aos nossos aimbot o que fazer se eles são, por exemplo, a leste de nós, mas o mesmo sobre o eixo NS. Não há necessidade de colocar o código para se eles são os mesmos tanto no eixo NS e EW, caso contrário você não vai precisar dele para definir um objetivo para você, você está sobre eles.

 

Citação:

void SetCrosshairOnEnemy (BYTE PlayerNumber) (PLAYER_DATA op = GetPlayerData (PlayerNumber) / / = Oposição Player oP PLAYER_DATA cP = GetMyPlayerData (); / CP = atual Player (nosso jogador) .. desculpa para :-) nomes var ruim / Sec * 1 * / if (oP.coordEW> cP.coordEW oP.coordNS & & <= cP.coordNS) () / * Sec 2 * / if <oP.coordEW (= cP. coordEW & & oP.coordNS <cP.coordNS) () / * Sec 3 * / if (oP.coordEW <cP.coordEW & & oP.coordNS> = cP.coordNS) () / * Sec 4 * / if oP.coordEW ( cP.coordEW => & oP.coordNS> cP.coordNS) ())

Agora, para obter o ângulo precisamos olhar, nós temos que fazer um triângulo entre o eixo EW, nós e ao jogador. Então nós temos que encontrar o ângulo de que estamos no ápice. Aqui está um dos desenhos snazzy pouco:

 

96db91.jpg

 

 

Esta é uma visão de cima:

Blue dot = Nosso leitor

Red dot = inimigo

Verde = O triângulo que fazemos

Purple = O ângulo precisamos encontrar

Laranja = A diferença é que temos de trabalhar para fora para o ângulo

 

Incase você esqueceu Triganometry, depois, para o lado 2, podemos chegar a mais fácil, vamos a função tangente:

Tan (ângulo) = frente / Adjacentes

 

Em todos os sectores, o Adjacente é a diferença EW, eo oposto é a diferença NS. Portanto, vamos adicionar alguns códigos para a nossa função:

 

Citação:

void SetCrosshairOnEnemy (BYTE PlayerNumber) (PLAYER_DATA op = GetPlayerData (PlayerNumber); PLAYER_DATA cP = GetMyPlayerData (); EWdif dupla / / estes necessitam de ser o dobro para os nossos cálculos Trig a trabalhar mais tarde NSdif duplo; / s * 1 * / if (oP.coordEW> cP.coordEW oP.coordNS & & <= cP.coordNS) (EWdif oP.coordEW = - cP.coordEW; NSdif = cP.coordNS - oP.coordNS / * Sec 2 * / if ( <oP.coordEW cP.coordEW = & & oP.coordNS <cP.coordNS) = (EWdif cP.coordEW - oP.coordEW; NSdif = cP.coordNS - oP.coordNS / * Sec 3 * / if oP.coordEW ( & & cP.coordEW oP.coordNS> = cP.coordNS) = (EWdif - cP.coordEW oP.coordEW <; NSdif = oP.coordNS - cP.coordNS / * 4 * Sec / if> oP.coordEW (= cP & & oP.coordNS> cP.coordNS) = (EWdif oP.coordEW - coordEW cP.coordEW.; NSdif = oP.coordNS - cP.coordNS)

Por favor note que, em cada sector, os cálculos não são os mesmos. Você precisa fazer o maior tirar a menor esperança ... isso é óbvio. Certo, então agora temos isso, precisamos obter o ângulo em graus. Para isso, precisamos fazer voltar à fórmula:

 

Tan (ângulo) = frente / Adjacentes

Tan (ângulo) = NSdif / EWdif

 

Precisamos fazer a função inversa da tangente, para que possamos obter o ângulo um pouco do que a tangente do ângulo. A função de fazer isso é atan (poderia ter usado atan2, mas não sabia dessa função no momento da programação). É preciso um parâmetro de casal, e retorna um valor duplo do ângulo em radianos. Mas isso não é bom para nós, queremos que em graus. Bem, para transformar radianos em graus, a uma multiplicação de 0,29578 '57 ', como se encontra fora do tinternet :-) Lembre-se de incluir <math.h> para a função atan.

 

Então, devido a nossa X não olhar com um máximo de 360, ele vai 0xFFFFFFFF upto (4294967295), precisamos encontrar a porcentagem que esse ângulo é de 360. Isto é assim que podemos descobrir o valor que precisamos usar, por exemplo:

Se o ângulo de 90 graus

90 / 360 = 0,25 (percentagem decimal do ângulo)

0xFFFFFFFF * 0,25 = 3FFFFFFF (aproximadamente), que é o novo valor, precisamos usar.

 

Vamos colocar isso no código :

 

Citação:

void SetCrosshairOnEnemy (BYTE PlayerNumber) (PLAYER_DATA op = GetPlayerData (PlayerNumber); PLAYER_DATA cP = GetMyPlayerData (); EWdif duplo; NSdif duplo; angleA dupla / / O ângulo em graus entre o inimigo, a leste, e nós angleP dupla / / A percentagem decimal do ângulo / s * 1 * / if (oP.coordEW> cP.coordEW oP.coordNS & & <= cP.coordNS) (EWdif oP.coordEW = - cP.coordEW; NSdif = cP.coordNS - op. coordNS; angleA = atan (NSdif / EWdif) 57,29578 * / / Lembre-se, a 57,29578 é converter de radianos para graus :-) angleP = (angleA/360) / * Sec 2 * / if <oP.coordEW ( & & oP.coordNS <cP.coordNS) = (EWdif cP.coordEW - cP.coordEW oP.coordEW =; NSdif = cP.coordNS - oP.coordNS; angleA = atan (NSdif / EWdif) 57,29578 *; angleP = (angleA / 360) / * Sec 3 * / if (oP.coordEW <cP.coordEW & & oP.coordNS> = cP.coordNS) (EWdif cP.coordEW = - oP.coordEW; NSdif = oP.coordNS - cP.coordNS; angleA = atan (NSdif / EWdif) 57,29578 *; angleP = (angleA/360) / * Sec 4 * / if oP.coordEW (> = & & cP.coordEW oP.coordNS> cP.coordNS) (EWdif = oP. - cP.coordEW coordEW; NSdif = oP.coordNS - cP.coordNS; angleA = atan (NSdif / EWdif) 57,29578 *; angleP = (angleA/360))

Em seguida, precisamos saber o que fazer com esse código para um outro tempo ... doody desenho ub3r-1337!

 

dmd4df.jpg

 

Para entender, lembre-se que 0 em nosso X-Look é este ... e que os valores vão sentido anti-horário. Permite voltar aos setores:

 

Setor 1 (SE) = 0xFFFFFFFF (leste) - o nosso novo valor

Setor 2 (SW) = 0xFFFFFFFF / 2 (oeste) + nosso novo valor

Setor 3 (NW) = 0xFFFFFFFF / 2 (oeste) - o nosso novo valor

Setor 4 (NE) = 0 (leste), + nosso novo valor

 

Antes de escrevê-los, porém, temos de convertê-los de volta para DWORDs, de duplas. Aqui está o novo código:

 

Citação:

void SetCrosshairOnEnemy (BYTE PlayerNumber) (PLAYER_DATA op = GetPlayerData (PlayerNumber); PLAYER_DATA cP = GetMyPlayerData (); EWdif duplo; NSdif duplo; angleA Duplo angleP;; newValue dupla / / Para manter nosso duplo novo valor DWORD newValue2 / / Para converter a nossa volta em dobro DWORD pronto para escrever halfCircle duplo = 0xFFFFFFFF / 2 / / Só para tornar o código um pouco mais legível :-) / s * 1 * / if (oP.coordEW> cP.coordEW & & oP.coordNS <= cP.coordNS) (EWdif oP.coordEW = - cP.coordEW; NSdif = cP.coordNS - oP.coordNS; angleA = atan (NSdif / EWdif) 57,29578 *; angleP = (angleA/360); newValue = - 0xFFFFFFFF (* angleP 0xFFFFFFFF); / / Como descrito acima :-) newValue2 newValue = / / Coloque-o em DWORD (pode chegar compilar avisos sobre a perda de dados .. isso é o motivo pelo qual estamos fazendo isso :-) Poke ((void ), cP.lookXa & newValue2, 4) / / Escreve o novo valor) / * Sec 2 * / if (<= & oP.coordEW cP.coordEW & oP.coordNS <cP.coordNS) = (EWdif cP.coordEW * - oP.coordEW; NSdif = cP.coordNS - oP.coordNS; angleA = atan (NSdif / EWdif) 57,29578 *; angleP = (angleA/360); newValue halfCircle = + (* angleP 0xFFFFFFFF); newValue2 = newValue; Poke (( void *) cP.lookXa & newValue2, 4) / * Sec 3 * / if (oP.coordEW <cP.coordEW & & oP.coordNS> = cP.coordNS) (EWdif cP.coordEW = - oP.coordEW; NSdif = oP.coordNS - cP.coordNS; angleA = atan (NSdif / EWdif) 57,29578 *; angleP = (angleA/360); newValue halfCircle = - (* angleP 0xFFFFFFFF); newValue2 = newValue; Poke ((void *) cP. lookXa & newValue2, 4) / * Sec 4 * / if oP.coordEW (> = & & cP.coordEW oP.coordNS> cP.coordNS) (EWdif oP.coordEW = - cP.coordEW; NSdif = oP.coordNS - cP.coordNS; angleA = atan (NSdif / EWdif) 57,29578 *; angleP = (angleA/360); newValue = 0 + (* angleP 0xFFFFFFFF); newValue2 = newValue; Poke (void * (cP.lookXa), e newValue2, 4 ))

WOOOO, agora temos o nosso olhar X acompanhando o inimigo que especificar (ou pelo menos, se você copiou e colou direito, você deve ter:-P)

 

Se você conseguiu ler tudo isso em um vai, volta * bem feito * de aplausos, este filho da mãe está tomando as idades me a escrever.Agora vá tomar uma água e volte para definir o Y-Look

 

Certo, para o nosso Y-look ainda é trig, ainda tan, e ainda temos de fazer um triângulo. Desta vez, imagine nós já temos X-look fechado sobre eles, e estão olhando frente a frente em linha reta .... ponto que é a distância mesmo nível de distância de nós como ele é, que está logo acima / abaixo dele. Isso é um ponto, então o nosso jogador, então o jogador inimigo. Aqui está outro desenho

 

2ds1i68.jpg

 

E aí temos que, no início do esqueleto de um aimbot. Agora coisa sobre a adição de algumas das coisas que se segue:

Lista negra (o único objectivo para certas pessoas ... usar o nome de parte da estrutura do jogador para verificar se eles estão ou não)

Conta de lag (balas de chumbo na frente de pessoas para dar conta da lag no jogo (se o seu MP) de viagem de bala, e)

Conta ponto para mergulho (o objectivo é, acima de um jogador tão balas mergulhar nelas)

arcos Grenade (treino para onde atirar granadas para que eles para ir em seu destino)

Enemy único objetivo (para que não visam a companheiros de equipa)

Apenas objetivo se vivo (tiro mortos não faz muito)

 

Quando o xtrap atualiza os códigos precisam ser renovados pois esses não funcionaram mais!

Procure em outros sites mais códigos para criar ainda mais hacks!

Esse foi simplesmente o básico só para ensinar mesmo

 

Ao término voce terá uma dll.

 

By: Vega~

Link para o comentário
Compartilhar em outros sites

Cara vc é Doido

ou um cientista maluko

essas coisas e muito complicado

é melhor vc fazer um programa e nos baixa e usa

mas boa inteligencia se é fera

sê exaltado, ó Deus, acima dos céus; e em toda terra esplenda sua glória

Link para o comentário
Compartilhar em outros sites

Robert Eisntein *-*

Nem sei escrever direito :raiva:

Cara como você já sabe como fazer...

Não é mais fácil você fazer um programa e disponibilizar para a gente :preocupado:

Claro que vai ficar PATCHED rapidim.

Más vai dar de curtir um pouco :yes:

Link para o comentário
Compartilhar em outros sites

Bom, não sei se todos perceberam se perceberam ninguem manifestou

na parte do tópico que ele vai disponibilizar os codigos algumas partes estão traduzidas tbm

ou seja não irá funcionar na minha opinião vc usou o google tradutor e postou aqui

sem ao menos ter lido o tópico original.

 

Conteúdo patched.

0CHhtst.png

Link para o comentário
Compartilhar em outros sites

Eu lembro muinto desse tópico, o Aimbot que eu criei esses dias para o CA que esta na pagina De cheats Combat Arms eu usei bastante informações desse tópico la na MPGH para criar meu aimbot

 

Acho que para as pessoas que naum saibam e queiram criar um ai esta sua oportunidade

:calma:

Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...

Eu tenho meu aimbot privado (só meu ;D) e eu usei muito este tópico na mpgh para faze-lo, realmente ajudou muito!

Pena que não vou disponibilizar o aimbot pra galera, afinal, brasileiro não sabe ser moderado.

E a propósito, como você usou google tradutor, algumas partes dos códigos estão traduzidas, por isso não irão funcionar. É bom lembrar isto!

Apesar de ser CTRL+C CTRL+V, obrigado por compartilhar.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...

cara, da pra perceber logo de cara que isso foi um control +c e control +v mal traduzido pelo google tradutor, além de não dar pra entender o que fala, pois o google tradutor é meio ruim, mesmo que o cara consiganão irá funcionar, então se a pessoa não sabe ler inglês com clareza ainda o que eu digo eh somente desistir e esperar, paar talvez num futuro próximo conseguir

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.