[PointBlank] AimBot soure code

  1. #1
    Utente Esperto L'avatar di dark_fire2
    Data Registrazione
    Oct 2013
    Messaggi
    1,854
    Ciao a tutti ragazzi sono dark_fire2 e oggi sono qui con un imbot fornito da un mio amico. PELOSO92
    Chi non ha mai desiderato creare un aimbot? Bene siamo solo io e quel ciccione peloso [PointBlank] AimBot soure code
    Possiamo avere l'aimbot già fatto
    [PointBlank] AimBot soure code?
    Vi dico già che non potrete avere l'aimbot già fatto , dovrete sudarvelo [PointBlank] AimBot soure code

    Come creare un aimbot !
    Requisiti utili :
    Cercare pointers per risolvere DMA
    Come è strutturato
    il gioco
    Conoscenza della matematica compresa la trigonometria
    Nessuno di voi poveri plebei sa quanto ancora dovrà leggere
    [PointBlank] AimBot soure code
    (Esattamente 3\4 di community hanno appena chiuso la discussione , ma
    tu sei
    tra quei pochi che è veramente interessato , congratulazioni !)

    Allora , quello di cui abbiamo bisogno sono le coordinate X , Y e Z (nord est ovest che ci servirà poi per determinare la posizione dei nemici , vanno bene anche altri punti di riferimento , il punto è comprendere il concetto e l'idea base di come funzioni un aimbot).
    Una volta presi potremo determinare l'angolazione del nemico in base al nostro punto

    Ok ora che avete capito la teoria , buttiamoci nella pratica !

    Prima di fare ciò abbiamo bisogno di 3 funzioni



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

    Player_data? Esatto , mi rende il programma più pulito , mi piace usare certe strutture. Inoltre player data ci puo' fornire informazioni sul player come
    Codice:
    typedef struct _PLAYER_DATA { DWORD baseadd;  //  address baseDWORD coordEW;   // est ovest coordinate (x)DWORD coordNS;   // nord sud (Y) coordinateDWORD coordUD;  // sopra sotto (Z) coordinateDWORD coordEWa;   // le coordinate del player (est ovest)DWORD coordNSa;   // Le coordinate del player (nord sud)DWORD coordUDa;  // Le coordinate del player (sopra sotto)DWORD lookX;  // La vista dell'utente dal punto X (cambia se ti muovi)DWORD lookY;  // La vista dell'utente dal punto Y (cambia se muovi il mouse)DWORD lookXa;  // L'address della XDWORD lookYa;  // L'address della Ychar name;  // Il nome del playerDWORD namea;  // L'address del nome} PLAYER_DATA;
    Non so perchè uso gli address per tutto nelle strutture ma tutto ciò lo si puo' fare benissimo in una giornata.
    Comunque sia tutto ciò ci è utile sia per noi che per il nostro aimbot

    Il metodo più facile di iniziare è usar artmoney's text search

    Co-ords:
    NS - Muoversi verso nord , search increased , muoversi verso sud , search descreased
    EW - Muoversi verso est, search increased, muoversi verso ovest, search decreased
    UD - Muoversi verso l'alto , search increased, muoversi verso il basso, search decreased
    LookX - Muovere il mouse destra sinistra, search has changed
    LookY - Muovere il mouse verso il basso o verso l'alto, search has changed

    Devi essere in grado di trovare l'address base da solo ed il pointer trovarlo in game.
    Io uso 2 pointers , 1 quando i points del player sono 0 ( o 1 , 1 posto nella memoria) e 1 come punto base dell'address del mio giocatore.
    Ora possiamo modificare le funzioni di GetMyPlayerData e getPlayerData per prendere le nostre info.

    In cima sono definite le basi.



    Codice:
    #define mBase  0xBD63D8   // mBase = La nostra base#define hBase  0xB0D228   // hBase = La base dell'host///PLAYER_DATA GetMyPlayerData(void){PLAYER_DATA Player;     // Crea la struttura player data vuotaZeroMemory(&Player, sizeof(PLAYER_DATA));   //L'inizia da 0Peek((void*)mBase,(void*)&Player.baseadd,4);   // Prende gli address base di player dal pointerPlayer.coordEWa = Player.baseadd + 0x8;   // Prende le addies di tuttoi 0x8, 0xC e l'altro schifo sono offsetPlayer.coordNSa = Player.baseadd + 0xC;Player.coordUDa = Player.baseadd + 0x10;Player.lookXa = Player.baseadd + 0x14;Player.lookYa = Player.baseadd + 0x18;Player.namea = Player.baseadd + 0xF4;Peek((void*)Player.coordEWa,(void*)&Player.coordEW,4);  // Noi adesso abbiamo tutti gli addies addies,legge tutte le info da  em 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);return Player;      // Da al nostro player data player e ne riceve il value}///PLAYER_DATA GetPlayerData(BYTE PlayerNum)    // Prende il numero del player come parametroPLAYER_DATA Player;ZeroMemory(&Player, sizeof(PLAYER_DATA));Peek((void*)hBase,(void*)&Player.baseadd,4);Player.baseadd = Player.baseadd + (PlayerNum*0x388);  // 0x388 è la distanza dei player partendo dal player 1Player.coordEWa = Player.baseadd + 0x8;   Player.coordNSa = Player.baseadd + 0xC;Player.coordUDa = Player.baseadd + 0x10;Player.lookXa = Player.baseadd + 0x14;Player.lookYa = Player.baseadd + 0x18;Player.namea = Player.baseadd + 0xF4;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);return Player;}///
    Ok adesso abbiamo tutte le funzioni e le informazioni che ci servono , è il momento di creare l'aimbot!
    Non abbiate troppe speranze , dovete leggere ancora molto , bevete qualcosa e tornate colmi di pazienza e calma [PointBlank] AimBot soure code

    //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//

    Ok , per fare questo serve la matematica , se non ne sapete potete pure rinunciare.

    L'aimbot funziona in 4 settori. La parte più facile è per trovare le distanze , iniziamo da quella.
    Prima di tutto dobbiamo determinare la posizione.

    Sector 1 = South-East della nostra posizione
    Sector 2 = South-West della nostra posizione
    Sector 3 = North-West della nostra posizione
    Sector 4 = North-East della nostra posizione

    Adesso aggiungiamo i settori al nostro source
    Nota : Dobbiamo dire al nostro aimbot cosa fare anche quando , ad esempio , sono a sud rispetto a noi.

    Codice:

    Codice:
    void SetCrosshairOnEnemy(BYTE PlayerNumber){PLAYER_DATA oP = GetPlayerData(PlayerNumber); // oP = Il posto del player opposto (il nemico)PLAYER_DATA cP = GetMyPlayerData();  // cP = Player corrente (il nostro giocatore) .. scusate per i nomi difficili asd/*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)
    Adesso dobbiamo , però , trovare l'angolo , motivo per il quale faremo un triangolo tra EW Axis , noi , e il player.
    Eccovi un piccolo disegnino

    [PointBlank] AimBot soure code

    Piccola legenda :

    Player blu = Noi
    Player rosso = Nemico (no dai?)
    Verde = Il triangolo che facciamo
    Viola = L'angolo che dobbiamo trovare
    Arancione = la distanza degli angoli

    Adesso possiamo trovare la funzione tangente
    Tan(angle)=Opposite/Adjacent
    In tutti i nostri settori , la tangente è la differenza di EW e l'opposta NS.
    Ora però tramutiamo ciò in codice



    Codice:
    void SetCrosshairOnEnemy(BYTE PlayerNumber){PLAYER_DATA oP = GetPlayerData(PlayerNumber);PLAYER_DATA cP = GetMyPlayerData();double EWdif;  // Dopo avremo bisogno di 2 differenzedouble NSdif;/*Sec 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;}/*Sec 4*/if(oP.coordEW >= cP.coordEW && oP.coordNS > cP.coordNS){ EWdif = oP.coordEW - cP.coordEW; NSdif = oP.coordNS - cP.coordNS;}}
    Nota : I calcoli non sono sempre e tutti uguali ! Devi fare il più grande sul più piccolo e non viceversa
    Bene , adesso che sappiamo ciò basta applicare la formula :

    Tan(angle) = Opposite/Adjacent
    Tan(angle) = NSdif/EWdif

    Adesso dobbiamo trovare la formula inversa per ricavare la tangente dell'angolo.
    La funzione da utilizzare è atan (potete pure utilizzare atan2, ma non c'è tempo adesso di mostrarvi come si fa).
    Quest'ultimo prende 1 doppio parametro e ridà il doppio del valore dell'angolo in radianti. Ma ciò per noi non va bene , noi vogliamo l'angolo in gradi.
    Per trasformare i radianti in angoli basta fare una moltiplicazione di "57.29578" lo potete trovare facilmente su internet .
    Comunque sia per la nostra vista X non abbiamo un massimo di 360 ° , abbiamo aumentato a 0xFFFFFFFF (4294967295) , adesso dobbiamo trovare la percentuale di questo angolo in 360°.
    Per trovarlo basta fare così , ad esempio se l'angolo è di 90
    90/360=0.25(percentuale decimale dell'angolo)
    0xFFFFFFFF * 0.25 = 3FFFFFFF , questo è il value che ci servirà.

    Motivo per il quale bisogna mettere ciò nel source !

    Codice:

    Codice:
    void SetCrosshairOnEnemy(BYTE PlayerNumber){PLAYER_DATA oP = GetPlayerData(PlayerNumber);PLAYER_DATA cP = GetMyPlayerData();double EWdif;double NSdif;double angleA;  // l'angolo in gradi tra noi e il nemicodouble angleP;  // la percentuale dell'angolo/*Sec 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;  // Ricorda, il 57.29578 è per convertire da radianti a gradi :-) angleP = (angleA/360);}/*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);}/*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.coordEW - cP.coordEW; NSdif = oP.coordNS - cP.coordNS; angleA = atan(NSdif/EWdif) * 57.29578; angleP = (angleA/360);}}
    Adesso è il momento di un altro disegno da babbuino !
    [PointBlank] AimBot soure code

    Ricorda che lo 0 nella nostra vista X è est..

    Sector 1 (SE) = 0xFFFFFFFF (est)- il nostro nuovo valore
    Sector 2 (SW) = 0xFFFFFFFF/2 (ovest) + il nostro nuovo valore
    Sector 3 (NW) = 0xFFFFFFFF/2 (ovest) - il nostro nuovo valore
    Sector 4 (NE) = 0 (est) + il nostro nuovo valore

    Adesso da valori doubles li dobbiamo trasformare in DWORDS. Quindi questa è la nuova parte di codice :



    Codice:
    void SetCrosshairOnEnemy(BYTE PlayerNumber){PLAYER_DATA oP = GetPlayerData(PlayerNumber);PLAYER_DATA cP = GetMyPlayerData();double EWdif;double NSdif;double angleA;double angleP;double newValue;  // Double value nuovoDWORD newValue2;  // Per convertire da double a dworddouble halfCircle = 0xFFFFFFFF/2;  // per rendere il codice più leggibile :-)/*Sec 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 - (0xFFFFFFFF*angleP); // descritto sopra :-) newValue2 = newValue;   // Poke((void*)cP.lookXa, &newValue2,4);  // scrive i nostri nuovi valori}/*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 + (0xFFFFFFFF*angleP); 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 - (0xFFFFFFFF*angleP); 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 + (0xFFFFFFFF*angleP); newValue2 = newValue; Poke((void*)cP.lookXa, &newValue2,4);
    Wohohoho adesso abbiamo la nostra vista X del nemico.
    Se hai letto tutto quello scritto sopra ti meriti un applauso *applausi* sto schifo ci ho messo 3 anni a scriverlo [PointBlank] AimBot soure code

    Ok adesso passiamo alla vista Y , ma prima vi conviene bere ancora qualcos'altro e fare uno spuntino [PointBlank] AimBot soure code
    Libertàààà
    [PointBlank] AimBot soure code

    //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//

    Ottimo , adesso per la nostra vista Y indovinate che bisogna fare?
    Un bellissimo triangolo ! Dato che la vista X l'abbiamo già fatta , adesso ci rimane la quella frontale e il livello di distanza tra noi e il nemico quanto sopra sotto di noi è. Questo è il metodo 1 sopra citato.

    Ed ora è il momento di.. un altro disegno da babbuino! (dovrei mettere sto schifo su devian art[PointBlank] AimBot soure code)
    [PointBlank] AimBot soure code

    Adesso abbiamo solo 2 'settori' .. se il nemico è sopra o sotto di noi.
    Il dislivello tra noi e lui è descritto nel teorema di pitagora EWdif and NWdif

    Infatti noi utilizzeremo quello. Ed eccovi il codice :



    Codice:
    void SetCrosshairOnEnemy(BYTE PlayerNumber){PLAYER_DATA oP = GetPlayerData(PlayerNumber);PLAYER_DATA cP = GetMyPlayerData();double EWdif;double NSdif;double UDdif;double angleA;double angleP;double angleB;double angleBP;double newValue;DWORD newValue2; double newValueb;DWORD newValueb2;double halfCircle = 0xFFFFFFFF/2;/*Sec 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 - (0xFFFFFFFF*angleP); newValue2 = newValue; Poke((void*)cP.lookXa, &newValue2,4);}/*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 + (0xFFFFFFFF*angleP); 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 - (0xFFFFFFFF*angleP); 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 + (0xFFFFFFFF*angleP); newValue2 = newValue; Poke((void*)cP.lookXa, &newValue2,4);}//Questo è per la vista X , ora la vista Ydouble flatDist = sqrt((EWdif*EWdif)+(NSdif*NSdif)); // Ottiene il livello tra noi il nemico usando pitagoraif(oP.coordUD == cP.coordUD){ BYTE zero4[4] = {0x00,0x00,0x00,0x00}; Poke((void*)cP.lookYa,zero4, 4);  // Se c'è la stessa altezza, setta la nostra vista Y a 0} else if(oP.coordUD > cP.coordUD){ UDdif = oP.coordUD - cP.coordUD;  // Work out our UDdif angleB = atan(UDdif/flatDist) * 57.29578; // Same old stuff as before angleBP = (angleB/360); newValueb = 0 + (0xFFFFFFFF*angleBP); newValueb2 = newValueb; Poke((void*)cP.lookYa, &newValueb2,4);} else if (oP.coordUD < cP.coordUD){ UDdif = cP.coordUD - oP.coordUD; angleB = atan(UDdif/flatDist) * 57.29578; angleBP = (angleB/360); newValueb = 0xFFFFFFFF - (0xFFFFFFFF*angleBP); newValueb2 = newValueb; Poke((void*)cP.lookYa, &newValueb2,4);}}
    E adesso abbiamo lo scheletro di un aimbot . Bisogna aggiungere solo poche cose :
    Shitlist (Head body e quelle cazzate)
    Granate (l'arco della granata)
    Sparare solo al team nemico.
    Ciao e al prossimo post



    Ultima modifica di Tanker32; 04-10-2013 alle 18:28

  2. #2

  3. #3
    Utente Esperto L'avatar di Calippo
    Data Registrazione
    Jul 2013
    Località
    Canto
    Messaggi
    18,172
    In che linguaggio si compila questo codice? Io ho Visual studio 2012
    Se volete Offirimi un caffè cosi inizio a mettere più trucchi (lavoro di piu)
    [PointBlank] AimBot soure code


  4. #4
    Utente Esperto L'avatar di dark_fire2
    Data Registrazione
    Oct 2013
    Messaggi
    1,854
    Guarda lo chiedo al mio amico PELOSO92 e te lo faccio sapere.

  5. #5
    Utente Esperto L'avatar di Paxerello
    Data Registrazione
    Sep 2013
    Messaggi
    173
    Quando crei un topic, devi sapere di cosa si parla.
    Un abbraccio, Paxo.
    [PointBlank] AimBot soure code

  6. #6
    Utente Esperto L'avatar di dark_fire2
    Data Registrazione
    Oct 2013
    Messaggi
    1,854
    lo scritto all inizio questo post me la detto di postarlo su tutti i forum che conosco il mio amico PELOSO92.
    Quindi io non ne so tanto

  7. #7
    Utente Esperto L'avatar di Paxerello
    Data Registrazione
    Sep 2013
    Messaggi
    173
    Bene, ma devi sapere comunque di cosa si tratta. Non ti sto contradicendo, ma solamente penso che uno prima di creare una discussione di questo genere, deve sapere di cosa si tratta. Spero in che in fututo te ne renderai conto.
    Un abbraccio, Paxo.
    [PointBlank] AimBot soure code

  8. #8
    Utente Esperto L'avatar di dark_fire2
    Data Registrazione
    Oct 2013
    Messaggi
    1,854
    ok accetto il consiglio

Termini piu ricercati:

come creare un aimbot per point blank

AIMBOT point blank

come usare aimbot point blank

come creare aimbot per point blank

point blank offset coordinates aimbot

come creare un aimbot

aimbot come fare

come fare un aimbot

point blank player address hack