Detected ##How to AimBot ##

Stato
Discussione chiusa ad ulteriori risposte.

TIH

Bannato
17 Marzo 2012
4,798
182
2,268
1,659
Ultima modifica da un moderatore:
Ringraziamento speciale a nome di tutti a zio mark grazie ! [R.I.P Banned]
Io , il grande Pannocchia re del mondo mi mostro a voi
lol.gif

Chi non ha mai desiderato creare un aimbot? Bene siamo solo io e quel ciccione peloso :nuu:
Possiamo avere l'aimbot già fatto
oops.gif
? Vi dico già che non potrete avere l'aimbot già fatto , dovrete sudarvelo
nope.gif

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
hehe.gif

(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 base
DWORD coordEW;   // est ovest coordinate (x)
DWORD coordNS;   // nord sud (Y) coordinate
DWORD coordUD;  // sopra sotto (Z) coordinate
DWORD 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 X
DWORD lookYa;  // L'address della Y
char name;  // Il nome del player
DWORD 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 vuota
ZeroMemory(&Player, sizeof(PLAYER_DATA));   //L'inizia da 0
Peek((void*)mBase,(void*)&Player.baseadd,4);   // Prende gli address base di player dal pointer


Player.coordEWa = Player.baseadd + 0x8;   // Prende le addies di tutto...i 0x8, 0xC e l'altro schifo sono offset
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);  // 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 parametro
PLAYER_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 1


Player.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 :asd:

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

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:
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

96db91.jpg


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 differenze
double 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:
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 nemico
double 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 !
dmd4df.jpg


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 nuovo
DWORD newValue2;  // Per convertire da double a dword


double 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 :\

Ok adesso passiamo alla vista Y , ma prima vi conviene bere ancora qualcos'altro e fare uno spuntino :asd:
Libertàààà
whee.gif


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

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:asd:)
2ds1i68.jpg


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 Y


double flatDist = sqrt((EWdif*EWdif)+(NSdif*NSdif)); // Ottiene il livello tra noi il nemico usando pitagora


if(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.
Abbiamo finitooooo
neber.gif

Have fun , fine!
 
Ma visto che lo sai fare perche non ne fai uno per no di inforge ? e nel frattempo provi a mettere il rank hack ?
GRAZIE
Codice:
[COLOR=#333333]#define ADDR_DEVICEGAME           0x009279F0[/COLOR]
#define ADDR_GLASSWALLS           0x0057DE9A
#define ADDR_DIPENGINE              0x006765CA
#define ADDR_GAMESTATUS        0x3783BE94
#define ADDR_MTBWCRET        0x373B9457
#define ADDR_LTCLIENT        0x378236F8
#define ADDR_CLIENTINFOMGR    0x37822C38
#define ADDR_PLAYERMGR        0x37881454
#define ADDR_PLAYERBYINDEX    0x372CC280
#define ADDR_LOCALPLAYER    0x372CCC70
#define ADDR_WEAPONMGR        0x378711A4
#define ADDR_LOCALPTR        0x378AAFD4
#define ADDR_BUILDFONT        0x375F6280
#define ADDR_FILLFONT        0x375F6F10
#define ADDR_FONTECX        0x3786BC6C
#define ADDR_GETFONTHAND    0x373C0730
#define ADDR_GETCONSOLEINT    0x373D4ED0
#define ADDR_GCS        0x3786A460
#define ADDR_LTCOMMON        0x37870FC8
#define ADDR_S_BULLETS        0x375115D6
#define ADDR_REMOTEKILL1    0x37517071
#define ADDR_REMOTEKILL2    0x37517072
#define ADDR_REMOTEKILL3    0x375173F1
#define ADDR_REMOTEKILL4    0x375173F2
#define ADDR_WEAPON_RANGE1    0x37516F49
#define ADDR_WEAPON_RANGE2    0x375172C9
#define ADDR_RAPIDFIRE1        0x3750DE87
#define ADDR_RAPIDFIRE2        0x37517A3E
#define ADDR_RAPIDFIRE3        0x37513547
#define ADDR_RAPIDFIRE4        0x37517A45
#define ADDR_NORECOIL           0x374BEDFC
#define ADDR_NORELOAD        0x37516CC1
#define ADDR_FORCEFPS        0x378234E8
#define ADDR_LTCSBASE        0x378236E0
#define OFF_FPS            0x18434
#define ADDR_PLAYERSTATUS       0x372C88D2
#define ADDR_NAMETAG1        0x3725D12F
#define ADDR_NAMETAG2        0x3725D0A9
#define ADDR_CAMERAUPDATE    0x374C3195
#define ADDR_UNLIMITEDAMMO    0x3750DE87
#define ADDR_W2S            0x496DB0
#define ADDR_INTERSECT        0x471080
#define ADDR_D3D                0x9279F0
#define ADDR_DRAWPRIM        0x81BA58
#define ADDR_CURSORCENTER    0x805D34
#define ADDR_CONSOLEUNWRAPPED   0x48B6E0
#define ADDR_CLIENTFX        0x66F34 
[COLOR=#333333]#define ADDR_S2S                4678832[/COLOR]
 
Questo è lo scheletro di un aimbot in modo tale che tutti possano imparare , se avessi voluto pubblicar eil mio aimbot non pensi che l'avrei già fatto ? :oddio:
 
Ma visto che lo sai fare perche non ne fai uno per no di inforge ? e nel frattempo provi a mettere il rank hack ?
GRAZIE
Codice:
[COLOR=#333333]#define ADDR_DEVICEGAME           0x009279F0[/COLOR]
#define ADDR_GLASSWALLS           0x0057DE9A
#define ADDR_DIPENGINE              0x006765CA
#define ADDR_GAMESTATUS        0x3783BE94
#define ADDR_MTBWCRET        0x373B9457
#define ADDR_LTCLIENT        0x378236F8
#define ADDR_CLIENTINFOMGR    0x37822C38
#define ADDR_PLAYERMGR        0x37881454
#define ADDR_PLAYERBYINDEX    0x372CC280
#define ADDR_LOCALPLAYER    0x372CCC70
#define ADDR_WEAPONMGR        0x378711A4
#define ADDR_LOCALPTR        0x378AAFD4
#define ADDR_BUILDFONT        0x375F6280
#define ADDR_FILLFONT        0x375F6F10
#define ADDR_FONTECX        0x3786BC6C
#define ADDR_GETFONTHAND    0x373C0730
#define ADDR_GETCONSOLEINT    0x373D4ED0
#define ADDR_GCS        0x3786A460
#define ADDR_LTCOMMON        0x37870FC8
#define ADDR_S_BULLETS        0x375115D6
#define ADDR_REMOTEKILL1    0x37517071
#define ADDR_REMOTEKILL2    0x37517072
#define ADDR_REMOTEKILL3    0x375173F1
#define ADDR_REMOTEKILL4    0x375173F2
#define ADDR_WEAPON_RANGE1    0x37516F49
#define ADDR_WEAPON_RANGE2    0x375172C9
#define ADDR_RAPIDFIRE1        0x3750DE87
#define ADDR_RAPIDFIRE2        0x37517A3E
#define ADDR_RAPIDFIRE3        0x37513547
#define ADDR_RAPIDFIRE4        0x37517A45
#define ADDR_NORECOIL           0x374BEDFC
#define ADDR_NORELOAD        0x37516CC1
#define ADDR_FORCEFPS        0x378234E8
#define ADDR_LTCSBASE        0x378236E0
#define OFF_FPS            0x18434
#define ADDR_PLAYERSTATUS       0x372C88D2
#define ADDR_NAMETAG1        0x3725D12F
#define ADDR_NAMETAG2        0x3725D0A9
#define ADDR_CAMERAUPDATE    0x374C3195
#define ADDR_UNLIMITEDAMMO    0x3750DE87
#define ADDR_W2S            0x496DB0
#define ADDR_INTERSECT        0x471080
#define ADDR_D3D                0x9279F0
#define ADDR_DRAWPRIM        0x81BA58
#define ADDR_CURSORCENTER    0x805D34
#define ADDR_CONSOLEUNWRAPPED   0x48B6E0
#define ADDR_CLIENTFX        0x66F34 
[COLOR=#333333]#define ADDR_S2S                4678832[/COLOR]
Volete sempre la pappa pronta, imparate invece di scaricare un programma a pazzo.
Potreste anche costruire un bel hack con molte funzioni e magari venderlo no?
 
Stato
Discussione chiusa ad ulteriori risposte.