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.

Criando Aimbot Para PB


Whaz
 Compartilhar

Posts Recomendados

Olá, hoje vou ensinar a fazer um Aimbot funcional paraPoint Blank BR, toma que eu ajude alguém.

 

 

Bom vamos la aqui um tutorial de como criar tags em players.

 

 

1º: precizamos utilizar o ollydbg para achar alguns valores de memoria para criar as struturas de Local + Entrada + Minha Screen, nessa parte nao vou encinar isso porque é longo esse processo.2º: quando tivermos ja os valores das struturas precizamos criar-las, para isso não ser complicado baixe o Open Source do Quake Arena(SDK) assim você ira intender melhor.3º: agora com todos valores e nossa estrutura criada, precizamos converter tudo isso , nesta parte nao é dificil basta um conhecimento em C++ e estruturas.

 

Bom vamos la.

 

class cLocal{public: DWORD VejaSeForValido;<-- verefica se estiver algum jogador valido no server __int32 NumeroPorcliente; <-- numero de entrada por cliente char ID00012[4]; /// char NomesJogadores[16]; <--Nome onde fica o 1º nick do server __int32 Equipe <--Verefica a equipe __int32 Equipe2;<--Verefica a equipe2 float Cordenadas_X_Minha; <-- minha cordenada X float Cordenadas_Y_Minha; <-- minha cordenada Y float Cordenadas_Z_Minha; <-- minha cordenada Z char ID932[8]; /// char ID1172[56];///}; cLocal* Local= ( cLocal* )0x008381F0;<--valor do pointer local

 

Strutura Entrada:

 

class vEntrada{public: char ID0[28]; // float Cordenadas_X_Inimigo; <-- cordenada do inimigo X float Cordenadas_Y_Inimigo; <-- cordenada do inimigo Y float Cordenadas_Z_Inimigo; <-- cordenada do inimigo Z DWORD NumeroDoCliente; <-- Numero do Cliente por entrada local __int32 VejaSeForValido; <-- verefica se for valido por entrada char ID452[24];//};vEntrada * Entrada= (vEntrada*)(0x0084E258);<-- valor do pointer HOST

Strutura Screen:

 

class Resolucao{public: int x; <-- cordenadas X da minha tela int y; <-- cordenadas Y da minha tela int Largura; <-- largura da minha tela int Atura; <-- Altura da minha tela float fov_x;// float fov_y;// vec3_t Veja_Local; <- Veja Resolucao Local vec3_t Veja_Entrada[3]; <-Veja Resolucao por entrada vec3_t Todos_os_Angulos; <- Pega todos Angulos};Resolucao * Res = ( Resolucao* )0x00796580;<-- poiter do D3D para Screen

Já temos as estruturas montadas, precizamos agora pegas as struturas e converte-las.declare

 

#define Calcule(x,y) ((x)[0]*(y)[0]+(x)[1]*(y)[1]+(x)[2]*(y)[2])#define SubtraiaVetores(a,b,c) (©[0]=(a)[0]-(B)[0],©[1]=(a)[1]-(B)[1],©[2]=(a)[2]-(B)[2])

Convertendo o mundo 3D para Minha Screen X & Y

 

bool MundoParaScreen(vec3_t MundoLocal, float * ScreenX, float * ScreenY){ float fXZ, fYZ; int CentroX, CentroY; vec3_t Local, TransForme, Direita, Esquerda, Cima; CentroX = Res->Largura/ 2; CentroY = Res_>Altura/ 2; AnguloParaVetores(Res->Todos_os_Angulos, Direita, Esquerda, Cima); SubtraiaVetores(MundoLocal, Res->Veja_Local, Local); TransForme[0] = Calcule(Local, Esquerda); TransForme[1] = Calcule(Local, Cima); TransForme[2] = Calcule(Local, Direita); if (TransForme[2] < 0.01) { return 0; } fXZ = CentroX / TransForme[2] * (90 / (Res->fov_x * 100)); fYZ = CentroY / TransForme[2] * (90 / (Res->fov_y * 100)); *ScreenX = CentroX + fXZ * TransForme[0]; *ScreenY = CentroY - fYZ * TransForme[1]; return 1;}

AnguloP Para Vetores (utilizei essa fonte do SDK Quake Arena):

 

void AnguloParaVetores( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up) { float angle; static float sr, sp, sy, cr, cp, cy; angle = angles[YAW] * (M_PI*2 / 360); sy = sin(angle); cy = cos(angle); angle = angles[PITCH] * (M_PI*2 / 360); sp = sin(angle); cp = cos(angle); angle = angles[ROLL] * (M_PI*2 / 360); sr = sin(angle); cr = cos(angle); if (forward){ forward[0] = cp*cy; forward[1] = cp*sy; forward[2] = -sp; } if (right){ right[0] = (-1*sr*sp*cy+-1*cr*-sy); right[1] = (-1*sr*sp*sy+-1*cr*cy); right[2] = -1*sr*cp; } if (up){ up[0] = (cr*sp*cy+-sr*-sy); up[1] = (cr*sp*sy+-sr*cy); up[2] = cr*cp; }}

Aqui agora iremos inicializar o processo......basta colocar em seu HOOK BeginScene ou IntMain:

 

for ( int e = 0; e < 64; e++ ){ int MinhaEquipe;vec3_t Posicao;char Nome[1024];float ScreenX,ScreenY;cLocal LocalInfo= Local[e];vEntrada EntradaInfo= Entrada[e];if( (EntradaInfo. VejaSeForValido == 1) && (Local->NumeroPorcliente!= EntradaInfo.NumeroDoCliente)){Posicao[0] = EntradaInfo.X;Posicao[1] = EntradaInfo.Y;Posicao[2] = EntradaInfo.Z;MinhaEquipe= LocalInfo[e].Equipe; if(MundoParaScreen( Posicao, &ScreenX, &ScreenY)){ sprintf(Nome, "%s", LocalInfo.NomesJogadores); if(MinhaEquipe!= LocalInfo.Equipe){GravaTextonaTela(Nome,ScreenX-25,ScreenY-50, CorVermelha,Fonte3); }else{GravaTextonaTela(Nome,ScreenX-25,ScreenY-50, CorVerde,Fonte3); }}

Codigo é para estudos. Aqui vou encinar como fazer o Aimbot para cs [Counter-strike] o processo é basicamente pegar pelo numero de entrada de jogadores e focar na mira. Esse metodo funciona para qualquer game, desde que tenha a Strutura e a conversão do Mundo Para Screen veja nesse topico sobre a conversão do Mundo Para Screen e as Struturas.Primeira mente precizamos capturar o numero de entrada de jogadors pelo Crosshair[Mira]Função:

 

int PegaClintePelaMira(){ int NumeroPorCliente= -1; DWORD FocaMira= 0xFFFFFFFF; DWORD Tmp; vec3_t posicao; for(int ID = 0; ID < 64; ID++) { if(Local[iD].VejaSeForValido== 1 ) { posicao[0] = Local[iD].Cordenadas_X_Minha; posicao[1] = Local[iD].Cordenadas_Y_Minha; posicao[2] = Local[iD].Cordenadas_Z_Minha; Tmp = FocaMinhaNoCentro(posicao); if(Tmp < FocaMira) { NumeroPorCliente= ID; FocaMira= Tmp; } } } return NumeroPorCliente;}DWORD FocaMinhaNoCentro(Vetor Ponto){ float ScreenX, ScreenY, XDif, YDif, xcentro, ycentro; xcentro = Res->Largura/2; ycentro =Res->Altura/2; if(MundoParaScreen(Ponto, &ScreenX, &ScreenY) == false) return 0xFFFFFFFF; ScreenX > xcentro ? XDif = ScreenX - xcentro : XDif = xcentro - ScreenX; ScreenY > ycentro ? YDif = ScreenY - ycentro : YDif = ycentro - ScreenY; return (DWORD)sqrt( ((XDif*XDif) + (YDif*YDif)) );}

Agora em seu Hook:

 

if(Aimbot){ if(Entrada.NumeroDoCliente== PegaClintePelaMira()){ if(MinhaEquipe= LocalInfo[e].Equipe){if(GetAsyncKeyState(VK_LBUTTON)){SetCurso rPos(ScreenX,ScreenY);}}}}

Pronto você ja tem o Aimbot Funcionando.lembrando que o codigo é apenas para estudo..obrigado a todosDe outro modoWallhackFalaa.... mais uma dica de como funciona o WallHack em jogos, isso inclui função em D3D, é basicamente por vertices. para isso eu precizo criar um logger para localizar o valor da vertice.... encinarei no proximo tutorial....em cs exite muitos valores para inicializar vamos la....Declare:

 

#define Opfor ((NumVertices == 3124 && primCount == 4132) || (NumVertices == 1970 && primCount == 2186) || (NumVertices == 1252 && primCount == 1160) || (NumVertices == 470 && primCount == 352) || (NumVertices == 3531 && primCount == 4526) || (NumVertices == 2188 && primCount == 2386) || (NumVertices == 1325 && primCount == 1194) || (NumVertices == 499 && primCount == 352) || (NumVertices == 2715 && primCount == 3588) || (NumVertices == 1620 && primCount == 1886) || (NumVertices == 943 && primCount == 908) || (NumVertices == 441 && primCount == 308) || (NumVertices == 2816 && primCount == 3642) || (NumVertices == 1773 && primCount == 2022) || (NumVertices == 1150 && primCount == 1086) || (NumVertices == 435 && primCount == 320) || (NumVertices == 250 && primCount == 304) || (NumVertices == 2818 && primCount == 3672) || (NumVertices == 150 && primCount == 142) || (NumVertices == 1715 && primCount == 1950) || (NumVertices == 1101 && primCount == 1066) || (NumVertices == 481 && primCount == 350) )#define Marines ((NumVertices == 681 && primCount == 588 ) || (NumVertices == 2613 && primCount == 3248) || (NumVertices == 1842 && primCount == 1978) || (NumVertices == 1144 && primCount == 814) || (NumVertices == 1034 && primCount == 904) || (NumVertices == 447 && primCount == 312) || (NumVertices == 3790 && primCount == 4078) || (NumVertices == 2784 && primCount == 2384) || (NumVertices == 1572 && primCount == 1166) || (NumVertices == 634 && primCount == 372) || (NumVertices == 233 && primCount == 330) || (NumVertices == 3597 && primCount == 4280) || (NumVertices == 2301 && primCount == 2364) || (NumVertices == 1341 && primCount == 1132) || (NumVertices == 580 && primCount == 380) || (NumVertices == 689 && primCount == 1172) || (NumVertices == 367 && primCount == 298) || (NumVertices == 4050 && primCount == 4486) || (NumVertices == 308 && primCount == 212) || (NumVertices == 2540 && primCount == 2444) || (NumVertices == 628 && primCount == 670) || (NumVertices == 1488 && primCount == 1114) || (NumVertices == 105 && primCount == 74) || (NumVertices == 592 && primCount == 374) || (NumVertices == 2516 && primCount == 2940) || (NumVertices == 106 && primCount == 114) || (NumVertices == 1726 && primCount == 1760) || (NumVertices == 1020 && primCount == 872) || (NumVertices == 587 && primCount == 370) || (NumVertices==204 && primCount==172) || (NumVertices== 681 && primCount==588) || (NumVertices== 63 && primCount== 62) ||(NumVertices== 822 && primCount== 1084)||(NumVertices== 2516 && primCount== 2940)||(NumVertices== 394 && primCount== 274) ||(NumVertices== 275 && primCount== 322) ||(NumVertices== 1409 && primCount== 868) ||(NumVertices== 716 && primCount== 962) ||(NumVertices== 394 && primCount== 274) ||(NumVertices== 178 && primCount== 166) ||(NumVertices== 1344 && primCount== 944) ||(NumVertices== 599 && primCount== 418) ||(NumVertices== 49 && primCount== 50) ||(NumVertices== 855 && primCount== 1100)||(NumVertices== 56 && primCount== 44) ||(NumVertices== 183 && primCount== 112) ||(NumVertices== 3790 && primCount== 4078)||(NumVertices== 56 && primCount== 44) ||(NumVertices== 34 && primCount== 30) ||(NumVertices== 874 && primCount== 1228) || (NumVertices== 213 && primCount== 282) ||(NumVertices== 367 && primCount== 298) ||(NumVertices== 306 && primCount== 274) ||(NumVertices== 1495 && primCount== 982) ||(NumVertices== 1198 && primCount== 842) ||(NumVertices== 306 && primCount== 274) ||(NumVertices== 4050 && primCount== 4486)|| (NumVertices== 686 && primCount== 952 )||(NumVertices== 828 && primCount== 1300)||(NumVertices== 3597 && primCount== 4280)||(NumVertices== 356 && primCount== 262 )||(NumVertices== 110 && primCount== 122 )||(NumVertices== 2613 && primCount== 3248)||(NumVertices== 1001 && primCount== 964) )#define Spetz ((NumVertices == 4358 && primCount == 4864) || (NumVertices == 3278 && primCount == 3188) || (NumVertices == 503 && primCount == 704) || (NumVertices == 1633 && primCount == 1332) || (NumVertices == 840 && primCount == 618) || (NumVertices == 783 && primCount == 1168) || (NumVertices == 4242 && primCount == 5028) || (NumVertices == 2391 && primCount == 2488) || (NumVertices == 1689 && primCount == 1422) || (NumVertices == 384 && primCount == 250) || (NumVertices == 969 && primCount == 708) || (NumVertices == 4270 && primCount == 4804) || (NumVertices == 2755 && primCount == 2494) || (NumVertices == 1317 && primCount == 1054) || (NumVertices == 809 && primCount == 590) || (NumVertices == 793 && primCount == 834) || (NumVertices == 3891 && primCount == 4598) || (NumVertices == 592 && primCount == 532) || (NumVertices == 2510 && primCount == 2470) || (NumVertices == 171 && primCount == 114) || (NumVertices == 1398 && primCount == 1176) || (NumVertices == 384 && primCount == 250) || (NumVertices == 384 && primCount == 250) || (NumVertices == 994 && primCount == 714) || (NumVertices == 529 && primCount == 540) || (NumVertices == 353 && primCount == 346) || (NumVertices == 726 && primCount == 556) || (NumVertices == 1315 && primCount == 1170) || (NumVertices == 2140 && primCount == 2310) || (NumVertices == 3326 && primCount == 4336) || (NumVertices == 3254 && primCount == 4122) || (NumVertices == 1730 && primCount == 1938) || (NumVertices == 398 && primCount == 410) || (NumVertices == 327 && primCount == 500) || (NumVertices == 2388 && primCount == 2040) || (NumVertices == 222 && primCount == 298) || (NumVertices == 1111 && primCount == 986) || (NumVertices == 1186 && primCount == 1184) || (NumVertices == 339 && primCount == 248) || (NumVertices == 994 && primCount == 714) )#define SAS ((NumVertices == 2334 && primCount == 2826) || (NumVertices == 438 && primCount == 376) || (NumVertices == 447 && primCount == 312) || (NumVertices == 1034 && primCount == 904) || (NumVertices == 1842 && primCount == 1978) || (NumVertices == 2613 && primCount == 3248) || (NumVertices == 1001 && primCount == 964) || (NumVertices == 3935 && primCount == 5226) || (NumVertices == 960 && primCount == 1072) || (NumVertices == 2640 && primCount == 3070) || (NumVertices == 212 && primCount == 288) || (NumVertices == 214 && primCount == 202) || (NumVertices == 1373 && primCount == 1256) || (NumVertices == 585 && primCount == 440) || (NumVertices == 634 && primCount == 372) || (NumVertices == 1572 && primCount == 1166) || (NumVertices == 2784 && primCount == 2384) || (NumVertices == 3790 && primCount == 4078) || (NumVertices == 3585 && primCount == 4858) || (NumVertices == 1498 && primCount == 1304) || (NumVertices == 2525 && primCount == 3022) || (NumVertices == 695 && primCount == 478) || (NumVertices == 193 && primCount == 140) || (NumVertices == 580 && primCount == 380) || (NumVertices == 1341 && primCount == 1132) || (NumVertices == 802 && primCount == 800) || (NumVertices == 2301 && primCount == 2364) || (NumVertices == 275 && primCount == 322) || (NumVertices == 3597 && primCount == 4280) || (NumVertices == 3716 && primCount == 5064) || (NumVertices == 2578 && primCount == 2994) || (NumVertices == 1412 && primCount == 1330) || (NumVertices == 568 && primCount == 470) || (NumVertices == 689 && primCount == 1172) || (NumVertices == 367 && primCount == 298) || (NumVertices == 4050 && primCount == 4486) || (NumVertices == 308 && primCount == 212) || (NumVertices == 2540 && primCount == 2444) || (NumVertices == 628 && primCount == 670) || (NumVertices == 1488 && primCount == 1114) || (NumVertices == 105 && primCount == 74) || (NumVertices == 592 && primCount == 374) || (NumVertices == 3562 && primCount == 4784) || (NumVertices == 2509 && primCount == 2954) || (NumVertices == 1402 && primCount == 1164) || (NumVertices == 628 && primCount == 450) || (NumVertices == 1615 && primCount == 1706) || (NumVertices == 541 && primCount == 366) || (NumVertices == 3667 && primCount == 4952) || (NumVertices == 2460 && primCount == 2882) || (NumVertices == 1479 && primCount == 1402) || (NumVertices == 552 && primCount == 452) )

Agora em seu hook em DrawIndexedPrimitive(D3DPRIMITIVETYPE Type,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount){

 

Vamos utilizar a função...

 

//aqui pode por uma cor1 = Vermelho pode usar cor em textura, por byte ou pixel shader ( prefiro pixel)MinhaPlaca3D->SetRenderState(D3DRS_ZENABLE,false);<-- desativa buffer.... = player visualizado atraz de algum objetoMinhaPlaca3D->DrawIndexedPrimitive(Type,BaseVertexIndex,MinVe rt exIndex,NumVertices,startIndex,primCount);MinhaPla ca3D->SetRenderState(D3DRS_ZENABLE,true);<-- ativa buffer = quando visivel//aqui pode por uma cor2 = Verde pode usar cor em textura, por byte ou pixel shader ( prefiro pixel)

 

o meu esta assim:

 

if(WallHack){ MinhaPlaca3D->SetPixelShader(cor.Vermelho );MinhaPlaca3D->SetRenderState(D3DRS_ZENABLE,false);MinhaPlaca3 D->DrawIndexedPrimitive(Type,BaseVertexIndex,MinVe rt exIndex,NumVertices,startIndex,primCount);MinhaPla ca3D->SetRenderState(D3DRS_ZENABLE,true);MinhaPlaca3D->SetPixelShader(cor.Verde);}

So funciona para qualquer jogo que for referenciado em D3D8 ou D3D9 e desde que tenha os valores corretos das Vertices..veja na imagem a baixo como funciona....Verde quando o jogador esta Visivel e Vermelho quando esta atraz de algum ObjetoAIMBOT!!!!!Ola pessoal, aqui vou encinar como fazer o Aimbot para COD4 [Call Fo Dulty 4] o processo é basicamente pegar pelo numero de entrada de jogadores e focar na mira.Primeira mente precizamos capturar o numero de entrada de jogadors pelo Crosshair[Mira]

 

Função:

int PegaClintePelaMira(){ int NumeroPorCliente= -1; DWORD FocaMira= 0xFFFFFFFF; DWORD Tmp; vec3_t posicao; for(int ID = 0; ID < 64; ID++) { if(Local[iD].VejaSeForValido== 1 ) { posicao[0] = Local[iD].Cordenadas_X_Minha; posicao[1] = Local[iD].Cordenadas_Y_Minha; posicao[2] = Local[iD].Cordenadas_Z_Minha; Tmp = FocaMinhaNoCentro(posicao); if(Tmp < FocaMira) { NumeroPorCliente= ID; FocaMira= Tmp; } } } return NumeroPorCliente;}DWORD FocaMinhaNoCentro(Vetor Ponto){ float ScreenX, ScreenY, XDif, YDif, xcentro, ycentro; xcentro = Res->Largura/2; ycentro =Res->Altura/2; if(MundoParaScreen(Ponto, &ScreenX, &ScreenY) == false) return 0xFFFFFFFF; ScreenX > xcentro ? XDif = ScreenX - xcentro : XDif = xcentro - ScreenX; ScreenY > ycentro ? YDif = ScreenY - ycentro : YDif = ycentro - ScreenY; return (DWORD)sqrt( ((XDif*XDif) + (YDif*YDif)) );}

Agora em seu Hook:

 

if(Aimbot){ if(Entrada.NumeroDoCliente== PegaClintePelaMira()){ if(MinhaEquipe= LocalInfo[e].Equipe){if(GetAsyncKeyState(VK_LBUTTON)){SetCurso rPos(ScreenX,ScreenY);}}}}

Pronto você ja tem o Aimbot Funcionando. Lembrando que o codigo é apenas para estudo. Obrigado a todos.

 

Créditos pelo Hack: 'Surfistinha

Créditos pelo Tópico: Whaz

Link para o comentário
Compartilhar em outros sites

  • 3 semanas atrás...
  • 2 semanas atrás...
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.