You Are Welcome Honored To Join With Us
Management Forum
You Are Welcome Honored To Join With Us
Management Forum



 
HomeLatest imagesRegisterLog inLog in

Share | 
 

 How To Do Hack AimBot

View previous topic View next topic Go down 
AuthorMessage
SoBad
Member
Member
SoBad

User data
Game Favorite : CrossFire
Gender : Male
Posts : 10
Points : 83
Location : Egypt & Alex

How To Do Hack AimBot  Empty
PostSubject: How To Do Hack AimBot    How To Do Hack AimBot  EmptySat Jan 01, 2011 1:59 am


Code :

/******Creditz to stickleback and a special thanks here to evolution2009 for teaching me how to code C++******/
Note: i really wish i could be a coder or mod on this site - i do my best to make ********* a good happy learning community
This is alot of text i know but its user friendly the actual code is small as i keep adding to it every section
This
is my variation - some people will prefere to code colour aimbots
(unreliable) or addressed (useless in most games other than cs. So my
way uses world co-ords (including North point/ south point)
What we
do, is get our position by co-ordinates, in X,Y and Z (or East/West,
North/South and Height), and the same for the enemy. With this, we can
work out our relative angle between North (or a different point, which
comes up later), our player, and the enemy. So in at the end of that,
we get our angle to aim for (away from North) in order to look at the
enemy. This is then used to set our rotational look onto the enemy.
Then we do the same with the height (between a point which is straight
ahead of us, our player, and the enemy) to get the angle we need to aim
up/down.
So to start off we want 3 main functions
Code:
PLAYER_DATA GetMyPlayerData(void)
PLAYER_DATA GetPlayerData(BYTE PlayerNumber)
void SetCrosshairOnEnemy(BYTE PlayerNumber)

PLAYER_DATA
- I like to use some structs as well as functions. I was taught this
way by evolution so i got used to it mu PLAYER_DATA structure holds
valuable information about a player. Such as:
Code:
typedef struct _PLAYER_DATA {
DWORD baseadd; // base address of this current player
DWORD coordEW; // East/West (X) co-ord
DWORD coordNS; // North/South (Y) co-ord
DWORD coordUD; // Up/Down (Z) co-ord
DWORD coordEWa; // The address of the players EW co-ord
DWORD coordNSa; // The address of the players NS co-ord
DWORD coordUDa; // The address of the players UD (up/down..wth was i thinking when naming this) co-ord
DWORD lookX; // The players X-axis look (what will change if you move the mouse side to side)
DWORD lookY; // The players Y-axis look (what will change if you move the mouse forwards and backwards)
DWORD lookXa; // The address of the X look
DWORD lookYa; // The address of the Y look

char name; // Holds the current players name
DWORD namea; // The address of the current players name
} PLAYER_DATA;
I
dont really know why I put all the addresses for everything in the
struct, but helloo, might come in use when making something one day.
All the stuff in there will come to use when making our aimbot, so
heres how to search for each of them (in DFX at least).
The easiest to start with is name, use Artmoneys Text search
Co-ords:
NS - Move north, search increased, move south, search decreased
EW - Move east, search increased, move west, search decreased
UD - Move up (a hill/ladder), search increased, move down, search decreased
LookX
- Move mouse left/right, search has changed set your search range to
around the other addies to narrow search down (this value may be
different to DFX. In DFX, 0 was east, and it increased as you went
anti-clockwise until you got to just before east, which was 0xFFFFFFFF)
LookY - Move mouse forward/backward, search has changed
You
should be able to get the player base address from near enough any of
these, and a pointer to get it in game. I use 2 pointers, 1 which
always points to player 0s (or 1, the 1st player in memory)s base
address, and 1 which always points to the base address of my player.
Now we can modify the GetMyPlayerData and GetPlayerData functions to
get us this info:

Now at the top of the C++, I define the bases:
Code:
#define mBase 0xBD63D8
#define hBase 0xB0D228
///
PLAYER_DATA GetMyPlayerData(void)
{
PLAYER_DATA Player; // Create a blank PLAYER_DATA struct
ZeroMemory(&Player, sizeof(PLAYER_DATA)); // Initiate it all to 0 (thanks L.Spiro, this solved some problems)
Peek((void*)mBase,(void*)&Player.baseadd,4); // Get our players Base Address from the pointer

/*****made by stickleback******/
Player.coordEWa
= Player.baseadd + 0�8; //
Get all the addies for
everything…the
0�8, 0xC and **** are the
offsets I found for DFX
Player.coordNSa = Player.baseadd + 0xC;
Player.coordUDa = Player.baseadd + 0�10;
Player.lookXa = Player.baseadd + 0�14;
Player.lookYa = Player.baseadd + 0�18;
Player.namea = Player.baseadd + 0xF4;
Peek((void*)Player.coordEWa,(void*)&Player.coordEW ,4); // Now we got all the addies, read in the info from em all
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; // Give our PLAYER_DATA Player, as the return value
}
///
PLAYER_DATA GetPlayerData(BYTE PlayerNum) // Takes the number of the player as a param
{
PLAYER_DATA Player;
ZeroMemory(&Player, sizeof(PLAYER_DATA));
Peek((void*)hBase,(void*)&Player.baseadd,4);


Player.baseadd
= Player.baseadd +
(PlayerNum*0�388); //
0�388 is the gap between
players, starting with player 1

Player.coordEWa = Player.baseadd + 0�8;
Player.coordNSa = Player.baseadd + 0xC;
Player.coordUDa = Player.baseadd + 0�10;
Player.lookXa = Player.baseadd + 0�14;
Player.lookYa = Player.baseadd + 0�18;
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;
}
///

Now
that we've made our functions to collect all the data we need, its time
to get to the core of the aimbot. This will be some Hcore reading so
take a brake and make sure you really suck this in
This uses Trigganometry
Maths
knowledge is needed to make this! If youre useless at maths, and still
reading, youre also useless at english for not understanding the
knowledge requirements at the top Lets start with the X look.
Because
DFX works around the East point (, facing Directly east =
�00000000/0xFFFFFFFF), then all our calculations will be made off it.
To help the understanding with this tutorial, Ill include some snazzy
little photoshuppered drawings, woo
The aimbot works in 4 sectors.
This makes things easier when finding out distances. Here are the
sectors and how to determine what sector an enemy is in :

Sector 1 = South-East of our position
Sector 2 = South-West of our position
Sector 3 = North-West of our position
Sector 4 = North-East of our position

So,
lets add these sectors to our source code. Note that also we have to
tell our aimbot what to do if they are, for example, east of us, but
the same on the NS axis. No need to put the code for if they are the
same on both the NS and the EW axis, as otherwise you wont need it to
set an aim for you, youre on them
Code:
void SetCrosshairOnEnemy(BYTE PlayerNumber)
{
PLAYER_DATA
oP = GetPlayerData(PlayerNumber); // oP =
Opposition’s
Player
PLAYER_DATA cP = GetMyPlayerData(); // cP = Current Player (our player) .. sorry for bad var names

/*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)
{
}
}

Now,
to get the angle we need to look, we have to make a triangle between
the EW axis, us, and the player. Then we have to find the angle of
which we are the apex. Heres 1 of the snazzy little drawings:



This is a top view :
Blue dot = Our player
Red dot = enemy
Green = The triangle we make
Purple = The angle we need to find
Orange = The differences we need to work out for the angle

Incase youve forgotten Triganometry, then due to the 2 side we can get the easiest we will the Tangent function :
Tan(angle) = Opposite/Adjacent

In
all our sectors, the Adjacent is the EW difference, and the Opposite is
the NS difference. So lets add some coding to our function :
Code:
void SetCrosshairOnEnemy(BYTE PlayerNumber)
{
PLAYER_DATA oP = GetPlayerData(PlayerNumber);
PLAYER_DATA cP = GetMyPlayerData();

double EWdif; // These need to be double for our Trig calculations to work later on
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;
}
}

Please
note that in each sector, the calculations ARE NOT the same. You need
to do the biggest take away the smallest hope thats obvious. Right, so
now we have this, we need to get the angle in degrees. For this, we
need to do go back to the formula :

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

We
need to do the Inverse Tangent function of this, so that we get the
angle rather than the Tangent of the angle. The function to do this is
atan (could have used atan2 but didnt know of this function at the time
of programming). It takes 1 double parameter, and returns a double
value of the angle in radians. But this is no good for us, we want it
in degrees. Well, to turn radians into degrees, its a multiplication
of, as found off the tinternet Remember to include <math.h> for
the atan function

Then, due to our X-look not having a maximum
of 360, it goes upto 0xFFFFFFFF (4294967295), we need to find the
percentage what this angle is of 360. This is so that we can find out
what value we need to use, for example:

If the angle was 90 degrees
90/360 = 0.25 (decimal percentage of the angle)
0xFFFFFFFF * 0.25 = 3FFFFFFF (roughly), which is the new value we need to use

Lets put this in the code.
Code:
void SetCrosshairOnEnemy(BYTE PlayerNumber)
{
PLAYER_DATA oP = GetPlayerData(PlayerNumber);
PLAYER_DATA cP = GetMyPlayerData();

double EWdif;
double NSdif;
double angleA; // The angle in degrees between the enemy, east, and us
double angleP; // The decimal percentage of the angle

/*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; // Remember, the 57.29578 is to convert from radians to degrees
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);
}
}


Next, we need to know what to do with that code now we got a Ss stickleback special coming rite up for ya




To understand, remember that 0 on our X-Look is EASTand that the values go counter-clockwise. Lets revert back to the sectors :

Sector 1 (SE) = 0xFFFFFFFF (east) - our new value
Sector 2 (SW) = 0xFFFFFFFF/2 (west) + our new value
Sector 3 (NW) = 0xFFFFFFFF/2 (west) - our new value
Sector 4 (NE) = 0 (east) + our new value

Before we write them though, we have to convert them back to DWORDs, from doubles. Heres the new code :
Code:
void SetCrosshairOnEnemy(BYTE PlayerNumber)
{
PLAYER_DATA oP = GetPlayerData(PlayerNumber);
PLAYER_DATA cP = GetMyPlayerData();

double EWdif;
double NSdif;
double angleA;
double angleP;
double newValue; // To hold our new double value
DWORD newValue2; // To convert our double back into DWORD ready for writing

double halfCircle = 0xFFFFFFFF/2; // Just to make the code a bit more readable

/*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); // As described above
newValue2
= newValue; // Put it into DWORD (may get compile warnings about losing
data..thats the whole reason
we’re
doing it
Poke((void*)cP.lookXa, &newValue2,4); // Write our new value
}

/*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);
}
}

WOOOO, we now have our X look tracking the enemy we specify (or at least, if you copied and pasted right you should have )

If
youve managed to read this all in 1 go, well done *round of applause*,
this ****ers taking me ages to write. Okey doke, snack time again, then
its onto setting the Y-look

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

Right,
for our Y-look its still trig, its still tan, and we still have to make
a triangle. This time, imagine we already have X-look locked on them,
and are looking straight in front.the point infront which is the same
level distance away from us as he is, which is right above/below him.
That is 1 point, then our player, then the enemy player. Here is
another class drawing (man, I should put this **** on deviantart :-P) :
This time there are only 2 sectors if the enemy is below us, or above us.
The
distance from us to him along a level view is obtained by pythagoras on
the EWdif and NWdif. We then use that, and the UDdif as the Opposite
and Adjacent and do the same stuff as before. This time though, we need
to include a bit for if the enemy is at the same height as us too
Heres the updated code :
Code:
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);
}

// Done the X-look, now this is for the Y-look

double flatDist = sqrt((EWdif*EWdif)+(NSdif*NSdif)); // Get the level distance between us and the enemy, using pythagoras

if(oP.coordUD == cP.coordUD)
{
BYTE
zero4[4] =
{0�00,0�00,0�00,0
�00};
Poke((void*)cP.lookYa,zero4, 4); // If we are equal height, set our Y-look to 0 (level)

} 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);
}
}



So this is basicly the basic aimbot - it will need a bit of work depending on what game
****list (only aim for certain people use the name part of the player structure to check if they are on it or not)
Account for lag (lead bullets infront of people to account for the lag in the game(if its mp), and bullet travel)
Account for bullet dipping (aim above a player so bullets dip onto them)
Grenade arcs (workout where to throw grenades in order for them to go on your target)
Enemy only aim (so you dont aim at team-mates)
Only aim if alive (shooting dead people doesnt do much)

I
know that some leecher is going to take this from me a pass it off as
there own but i say this now when people start asking questions about
how to do each bit, can you answer them - i guess not - and i certainly
wouldnt help you then so please - you want some help with your project
thats fine but remember the credits
Code:
/*****Stickleback for
making the first SF AimBot except (evo.bot)(patched) and a super
special thanks to Evolution for teaching stickleback*******/
Thanks
Your Ad Here


 Original theme : How To Do Hack AimBot   Source : Gamzervip.com

SoBad : Signature
Your Ad Here
Back to top Go down
 

How To Do Hack AimBot

View previous topic View next topic Back to top 
Page 1 of 1

((مَا يَلْفِظُ مِنْ قَوْلٍ إِلَّا لَدَيْهِ رَقِيبٌ عَتِيدٌ))


Permissions in this forum:You cannot reply to topics in this forum
 :: Download :: Software-
Jump to:  
All Rights Reserved ForGamzervip.com/جميع الحقوق محفوظة لموقعGamzervip.com
Free forum | ©phpBB | Free forum support | Report an abuse | Forumotion.com