Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Windows.h>
- #include <iostream>
- #include <math.h>
- #include "HackProcess.h"
- #include <vector>
- #include <algorithm>
- CHackProcess fProcess;
- using namespace std;
- #define F6_Key 0x75
- #define RIGHT_MOUSE 0x02
- int NumOfPlayers = 15;
- const DWORD dw_PlayerCountOffs = 0x6F4020;//Engine.dll //Tirar //////engine.dll+6F4020
- const DWORD GameBasePtr = 0xC000;
- const DWORD GameBase = 0x00A15F68;
- DWORD MeuPlayerBase;
- int localizado = 0;
- int localizadoang = 0;
- int contador = 0;
- const DWORD Player_Base = GameBase-0x198;//0x00574560;
- const DWORD dw_MyTeamOffset = 0xD8;//client // + vai virar -
- const DWORD dw_mTeamOffset = 0xD8;//client // -
- const DWORD dw_MyHealth = 0x198;//client //+
- const DWORD dw_Health = 0x00;//client //+
- const DWORD dw_Pos = 0x48;//client //0134 //-
- const DWORD dw_MyPos = 0x150;//client //+
- const CHAR mname = 0x4;//+
- const DWORD EntityPlayer_Base = GameBase;
- const DWORD EntityLoopDistance = 0x1E0;
- const DWORD waller = 0x9A8320;
- DWORD dw_m_angRotationFINAL = 0x09B23760;
- //const DWORD dw_m_angRotationFINAL = 0x00;
- /*
- void EncontraAngulo()
- {
- float angulo;
- float angulocompare;
- DWORD compareptr;
- for(int i = 0; i < 3300;i++) {
- if(localizadoang == 0) {
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + 0xA00EB8), &angulo, sizeof(float), 0);
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordEngine + 0xi), &compareptr, sizeof(DWORD), 0);
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(compareptr), &angulocompare, sizeof(DWORD), 0);
- printf("contador = %d \n", i);
- printf("Angulo encontrado addr %x \n", compareptr);
- printf("Angulo encontrado %f \n", angulocompare);
- if(angulo == angulocompare)
- {
- dw_m_angRotationFINAL = compareptr;
- printf("Angulo encontrado addr %x \n", compareptr);
- printf("Angulo encontrado %f \n", angulocompare);
- localizadoang = 1;
- }
- }
- }
- }*/
- struct MyPlayer_t
- {
- DWORD CLocalPlayer;
- DWORD ggGameBase;
- DWORD ggGameBaseB;
- DWORD ggGameBaseC;
- int Team;
- int Health;
- float Position[3];
- float poscomparer;
- float posfinder;
- DWORD TeamPtr;
- DWORD HealthPtr;
- DWORD PositionPtr;
- DWORD poscomparerptr;
- DWORD BaseOffsA, BaseOffsB,BaseOffsC,BaseOffsD,BaseOffsE,BaseOffsF,BaseOffsG,BaseOffsH;
- DWORD BaseOffsAptr, BaseOffsBptr,BaseOffsCptr,BaseOffsDptr,BaseOffsEptr,BaseOffsFptr,BaseOffsGptr,BaseOffsHptr;
- DWORD TeamGambiarra;
- void ReadInformation()
- {
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + GameBase), &ggGameBase, sizeof(DWORD), 0);
- BaseOffsA = ggGameBase+0x4FC;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsA), &BaseOffsAptr, sizeof(DWORD), 0);
- BaseOffsB = BaseOffsAptr+0x504;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsB), &BaseOffsBptr, sizeof(DWORD), 0);
- BaseOffsC = BaseOffsBptr+0xD4;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsC), &BaseOffsCptr, sizeof(DWORD), 0);
- BaseOffsD = BaseOffsCptr+0x0;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsD), &BaseOffsDptr, sizeof(DWORD), 0);
- BaseOffsE = BaseOffsDptr+0x90;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsE), &BaseOffsEptr, sizeof(DWORD), 0);
- BaseOffsF = BaseOffsEptr+0x7C;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsF), &BaseOffsFptr, sizeof(DWORD), 0);
- BaseOffsG = BaseOffsFptr+0x120;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsG), &BaseOffsGptr, sizeof(DWORD), 0);
- BaseOffsH = BaseOffsGptr+0x200;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsH), &BaseOffsHptr, sizeof(DWORD), 0);
- // ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(gggGameBaseB + (Player * EntityLoopDistance)),&CBaseEntity, sizeof(DWORD), 0);
- for(int i = 0; i < 32; i++) {
- if(localizado == 0) {
- CLocalPlayer = BaseOffsH + (i * EntityLoopDistance);
- poscomparerptr = CLocalPlayer - dw_Pos;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + 0x9B8960), &posfinder, sizeof(float), 0);
- //ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(Nameptr), &Nameptrb, sizeof(DWORD), 0);
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(poscomparerptr), &poscomparer, sizeof(float), 0);
- printf("posfinder: %f \n", posfinder);
- printf("poscomparer: %f \n", poscomparer);
- if(posfinder == poscomparer) {
- CLocalPlayer = BaseOffsH + (i * EntityLoopDistance);
- localizado = 1;
- contador = i;
- printf("Localizado ;p");
- }else {
- localizado = 0;
- }
- //printf("i = %d", i);
- }
- }
- //ggGameBaseB = BaseOffsH;
- //ggGameBaseC = BaseOffsH-0x198;
- // printf("BaseOffsH = %x", BaseOffsH);
- // ###############CLocalPlayer = ggGameBaseC; ******************************************/
- CLocalPlayer = BaseOffsH + (contador * EntityLoopDistance);
- //printf("Localizado %d", localizado);
- //CLocalPlayer = MeuPlayerBase-0x4;
- HealthPtr = CLocalPlayer+dw_Health;
- PositionPtr = CLocalPlayer-dw_Pos;
- TeamPtr = CLocalPlayer-dw_mTeamOffset;
- //printf("Team: %x", TeamPtr);
- // Reading CLocalPlayer Pointer to our "CLocalPlayer" DWORD.
- //ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(ggGameBaseC), &CLocalPlayer, sizeof(DWORD), 0);
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(HealthPtr), &Health, sizeof(int), 0);
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(TeamPtr), &Team, sizeof(int), 0);//Tirar
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(PositionPtr), &Position, sizeof(float[3]), 0);
- //ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordEngine + dw_PlayerCountOffs), &NumOfPlayers, sizeof(int), 0); //Tirar
- //DWORD PosX = 0x9B8960;
- //DWORD PosZ = 0x9B8964;
- //DWORD PosY = 0x9B8968;
- }
- }MyPlayer;
- struct TargetList_t
- {
- float Distance;
- float AimbotAngle[3];
- TargetList_t()
- {
- }
- TargetList_t(float aimbotAngle[], float myCoords[], float enemyCoords[])
- {
- Distance = Get3dDistance(myCoords[0], myCoords[1], myCoords[2],
- enemyCoords[0], enemyCoords[1], enemyCoords[2] );
- AimbotAngle[0] = aimbotAngle[0];
- AimbotAngle[1] = aimbotAngle[1];
- AimbotAngle[2] = aimbotAngle[2];
- }
- float Get3dDistance(float myCoordsX, float myCoordsZ, float myCoordsY,
- float eNx, float eNz, float eNy)
- {
- return sqrt(
- pow(double(eNx - myCoordsX), 2.0) +
- pow(double(eNy - myCoordsY), 2.0) +
- pow(double(eNz - myCoordsZ), 2.0));
- }
- };
- //ENemy struct
- struct PlayerList_t
- {
- DWORD gggGameBase;
- DWORD gggGameBaseB;
- DWORD gggGameBaseC;
- DWORD CBaseEntity;
- int Team;
- int Health;
- float Position[3];
- float AimbotAngle[3];
- char Name[39];
- DWORD Healthptr;
- DWORD Teamptr;
- DWORD Positionptr;
- DWORD Nameptr;
- DWORD BaseOffsA, BaseOffsB,BaseOffsC,BaseOffsD,BaseOffsE,BaseOffsF,BaseOffsG,BaseOffsH;
- DWORD BaseOffsAptr, BaseOffsBptr,BaseOffsCptr,BaseOffsDptr,BaseOffsEptr,BaseOffsFptr,BaseOffsGptr,BaseOffsHptr;
- void ReadInformation(int Player)
- {
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + GameBase), &gggGameBase, sizeof(DWORD), 0);
- BaseOffsA = gggGameBase+0x4FC;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsA), &BaseOffsAptr, sizeof(DWORD), 0);
- BaseOffsB = BaseOffsAptr+0x504;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsB), &BaseOffsBptr, sizeof(DWORD), 0);
- BaseOffsC = BaseOffsBptr+0xD4;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsC), &BaseOffsCptr, sizeof(DWORD), 0);
- BaseOffsD = BaseOffsCptr+0x0;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsD), &BaseOffsDptr, sizeof(DWORD), 0);
- BaseOffsE = BaseOffsDptr+0x90;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsE), &BaseOffsEptr, sizeof(DWORD), 0);
- BaseOffsF = BaseOffsEptr+0x7C;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsF), &BaseOffsFptr, sizeof(DWORD), 0);
- BaseOffsG = BaseOffsFptr+0x120;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsG), &BaseOffsGptr, sizeof(DWORD), 0);
- BaseOffsH = BaseOffsGptr+0x200;
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(BaseOffsH), &BaseOffsHptr, sizeof(DWORD), 0);
- // ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(gggGameBaseB + (Player * EntityLoopDistance)),&CBaseEntity, sizeof(DWORD), 0);
- CBaseEntity = BaseOffsH + (Player * EntityLoopDistance);
- //printf("gggGameBaseB = %x", CBaseEntity);
- Teamptr = CBaseEntity - dw_mTeamOffset;
- Healthptr = CBaseEntity + dw_Health;
- Positionptr = CBaseEntity - dw_Pos;
- Nameptr = CBaseEntity + mname;
- // Reading out our Team to our "Team" Varible.
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(Teamptr), &Team, sizeof(int), 0); //Tirar
- //printf("TeamId = %d \n", Team);
- // Reading out our Health to our "Health" Varible.
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(Healthptr), &Health, sizeof(int), 0);
- // Reading out our Position to our "Position" Varible.
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(Positionptr), &Position, sizeof(float[3]), 0);
- ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(Nameptr), &Name, sizeof(char), 0);
- }
- }PlayerList[32];
- struct CompareTargetEnArray
- {
- bool operator() (TargetList_t & lhs, TargetList_t & rhs)
- {
- return lhs.Distance < rhs.Distance;
- }
- };
- void CalcAngle( float *src, float *dst, float *angles )
- {
- double delta[3] = { (src[0]-dst[0]), (src[1]-dst[1]), (src[2]-dst[2]) };
- double hyp = sqrt(delta[0]*delta[0] + delta[1]*delta[1]);
- angles[0] = (float) (asinf(delta[2]/hyp) * 57.295779513082f);
- angles[1] = (float) (atanf(delta[1]/delta[0]) * 57.295779513082f);
- angles[2] = 0.0f;
- if(delta[0] >= 0.0)
- {
- angles[1] += 180.0f;
- }
- }
- float Calculadistancia(float myCoordsX, float myCoordsZ, float myCoordsY,
- float eNx, float eNz, float eNy)
- {
- return sqrt(
- pow(double(eNx - myCoordsX), 2.0) +
- pow(double(eNy - myCoordsY), 2.0) +
- pow(double(eNz - myCoordsZ), 2.0));
- }
- void Aimbot()
- {
- float fNearest = (float)INT_MAX;
- int iAimAt = -1;
- int gambiarrameutime = 12;
- TargetList_t* TargetList = new TargetList_t[NumOfPlayers];
- int targetLoop = 0;
- for(int i = 1; i < NumOfPlayers; i ++)
- {
- if (GetAsyncKeyState(VK_RBUTTON)) { ////Meu
- i++;
- }
- if (GetAsyncKeyState(VK_F2)) { ////Meu
- gambiarrameutime = 12;
- }
- if (GetAsyncKeyState(VK_F3)) { ////Meu
- gambiarrameutime = 16;
- }
- if (GetAsyncKeyState(VK_F4)) { ////Meu
- gambiarrameutime = 8;
- }
- PlayerList[i].ReadInformation(i);
- if (PlayerList[i].Team == MyPlayer.Team)
- continue;
- if (PlayerList[i].Health < 2)
- continue;
- if(Calculadistancia(MyPlayer.Position[0], MyPlayer.Position[1], (MyPlayer.Position[2]),PlayerList[i].Position[0],PlayerList[i].Position[1], (PlayerList[i].Position[2]) ) < fNearest )//dis :D
- {
- iAimAt = i;
- fNearest = Calculadistancia(MyPlayer.Position[0], MyPlayer.Position[1],
- (MyPlayer.Position[2]),PlayerList[i].Position[0],PlayerList[i].Position[1], (PlayerList[i].Position[2]) );
- // }
- }
- //PlayerList[i].Position[2] -= 10;
- CalcAngle (MyPlayer.Position, PlayerList[i].Position, PlayerList[i].AimbotAngle);
- TargetList[targetLoop] = TargetList_t(PlayerList[i].AimbotAngle, MyPlayer.Position, PlayerList[i].Position);
- //Increment
- targetLoop++;
- }
- if(targetLoop > 0)
- {
- std::sort(TargetList, TargetList+targetLoop, CompareTargetEnArray());
- if (GetAsyncKeyState(VK_MBUTTON))
- {
- if(iAimAt != -1) {
- /*
- WriteProcessMemory (fProcess.__HandleProcess,
- (PBYTE*)(fProcess.__csgoexe+dw_m_angRotation),
- TargetList[0].AimbotAngle, 12, 0);*/
- if(MyPlayer.Health > 2) { //Evita um bug louco
- WriteProcessMemory (fProcess.__HandleProcess,
- (PBYTE*)(dw_m_angRotationFINAL),
- TargetList[0].AimbotAngle, 14, 0);
- }
- int main()
- {
- fProcess.RunProcess(); // CS:GO...
- cout << "starten!" << endl;
- while (!GetAsyncKeyState(F6_Key)) // or for(;;)
- {
- MyPlayer.ReadInformation();
- // EncontraAngulo();
- Aimbot();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement