diff --git a/apex_dma/Game.cpp b/apex_dma/Game.cpp index c507852..8708cd7 100644 --- a/apex_dma/Game.cpp +++ b/apex_dma/Game.cpp @@ -7,9 +7,10 @@ extern bool firing_range; extern float glowr; extern float glowg; extern float glowb; +//glowtype not used, but dont delete its still used. extern int glowtype; extern int glowtype2; - +//setting up vars, dont edit float smooth = 100.0f; bool aim_no_recoil = true; int bone = 2; @@ -45,7 +46,7 @@ void get_class_name(uint64_t entity_ptr, char* out_str) apex_mem.ReadArray(client_class.pNetworkName, out_str, 32); } - +//patched out but left in for reasons void charge_rifle_hack(uint64_t entity_ptr) { extern uint64_t g_Base; @@ -74,7 +75,7 @@ int Entity::getHealth() { return *(int*)(buffer + OFFSET_HEALTH); } - +//seer health and shield i added #define OFFSET_ARMOR_TYPE 0x4604 int Entity::getArmortype() { @@ -107,7 +108,7 @@ bool Entity::isPlayer() { return *(uint64_t*)(buffer + OFFSET_NAME) == 125780153691248; } - +//firing range dummys bool Entity::isDummy() { char class_name[33] = {}; @@ -133,7 +134,7 @@ float Entity::lastVisTime() //https://www.unknowncheats.me/forum/apex-legends/496984-getting-hitbox-positions-cstudiohdr-externally.html //https://www.unknowncheats.me/forum/3499185-post1334.html - +//hitboxes Vector Entity::getBonePositionByHitbox(int id) { Vector origin = getPosition(); @@ -206,7 +207,7 @@ bool Entity::isZooming() { return *(int*)(buffer + OFFSET_ZOOMING) == 1; } - +//custom glow color RGB void Entity::enableGlow() { apex_mem.Write(ptr + OFFSET_GLOW_ENABLE, glowtype); @@ -253,7 +254,7 @@ void Entity::get_name(uint64_t g_Base, uint64_t index, char* name) apex_mem.Read(g_Base + OFFSET_NAME_LIST + index, name_ptr); apex_mem.ReadArray(name_ptr, name, 32); } - +//Items bool Item::isItem() { char class_name[33] = {}; @@ -261,7 +262,7 @@ bool Item::isItem() return strncmp(class_name, "CPropSurvival", 13) == 0; } - +//Deathboxes bool Item::isBox() { char class_name[33] = {}; @@ -269,7 +270,7 @@ bool Item::isBox() return strncmp(class_name, "CDeathBoxProp", 13) == 0; } - +//Traps bool Item::isTrap() { char class_name[33] = {}; diff --git a/apex_dma/apex_dma.cpp b/apex_dma/apex_dma.cpp index a84b487..267b33f 100644 --- a/apex_dma/apex_dma.cpp +++ b/apex_dma/apex_dma.cpp @@ -12,6 +12,7 @@ Memory apex_mem; Memory client_mem; +//Just setting things up, dont edit. bool firing_range = false; bool active = true; uintptr_t aimentity = 0; @@ -33,44 +34,54 @@ extern int bone; bool thirdperson = false; - -//chargerifle hack +//chargerifle hack, removed but not all the way, dont edit. bool chargerifle = false; bool shooting = false; -//Player Glow Color and Brightness -float glowr = 0.0f; -float glowg = 120.0f; -float glowb = 120.0f; + +//Player Glow Color and Brightness. Just setting things up, dont edit. +float glowr = 0.0f; //Red 0-255, higher is brighter color. +float glowg = 120.0f; //Green 0-255, higher is brighter color. +float glowb = 120.0f; //Blue 0-255, higher is brighter color. + + +//Removed but not all the way, dont edit. int glowtype = 1; int glowtype2 = 2; + //Ha think i was done ? +//Backpacks bool lightbackpack = false; bool medbackpack = false; bool heavybackpack = false; + + +//Shield upgrades bool shieldupgrade = false; bool shieldupgradehead = false; +bool shielddown = false; + + +//heaing and Misc bool accelerant = false; bool phoenix = false; bool healthlarge = false; bool healthsmall = false; bool shieldbattsmall = false; bool shieldbattlarge = false; + + +//Ammo bool ammosniper = false; bool ammohc = false; -bool optic = false; bool ammosc = false; bool ammonrg = false; bool ammoshotgun = false; -bool lasersight = false; -bool magsniper = false; -bool magenergy = false; -bool stocksniper = false; -bool stockregular = false; -bool shielddown = false; -bool lightammomag = false; -bool heavyammomag = false; + + +//Optics +bool optic = false; bool optic2x = false; bool opticholo1x = false; bool opticholo1x2x = false; @@ -80,50 +91,85 @@ bool optic2x4x = false; bool opticsniper6x = false; bool opticsniper4x8x = false; bool opticsniperthreat = false; + + +//Magazines +bool magsniper = false; +bool magenergy = false; +bool lightammomag = false; +bool heavyammomag = false; + + +//Attachments +bool lasersight = false; +bool stocksniper = false; +bool stockregular = false; bool suppressor = false; bool weaponmod = false; +bool shotgunbolt = false; +//Nades bool grenade_frag = false; bool grenade_arc_star = false; bool grenade_thermite = false; -bool shotgunbolt = false; + + +//Kraber bool weapon_kraber = false; + + +//Shotguns bool weapon_mastiff = false; +bool weapon_eva8 = false; +bool weapon_peacekeeper = false; +bool weapon_mozambique = false; + + +//Energy weapons bool weapon_lstar = false; bool weapon_havoc = false; bool weapon_devotion = false; bool weapon_triple_take = false; +bool weapon_prowler = false; +bool weapon_volt = false; + + +//Heavy Weapons bool weapon_flatline = false; bool weapon_hemlock = false; +bool weapon_3030_repeater = false; +bool weapon_rampage = false; +bool weapon_car_smg = false; + + +//Light weapons +bool weapon_p2020 = false; +bool weapon_re45 = false; bool weapon_g7_scout = false; bool weapon_alternator = false; bool weapon_r99 = false; -bool weapon_prowler = false; -bool weapon_volt = false; -bool weapon_longbow = false; -bool weapon_charge_rifle = false; bool weapon_spitfire = false; bool weapon_r301 = false; -bool weapon_eva8 = false; -bool weapon_peacekeeper = false; -bool weapon_mozambique = false; + + +//Snipers.. wingman is the odd one...and the bow.. bool weapon_wingman = false; -bool weapon_p2020 = false; -bool weapon_re45 = false; +bool weapon_longbow = false; +bool weapon_charge_rifle = false; bool weapon_sentinel = false; bool weapon_bow = false; -bool weapon_3030_repeater = false; -bool weapon_rampage = false; -bool weapon_car_smg = false; -//aim dist check + + +//aim dist check. Just setting things up, dont edit. float aimdist = 200.0f * 40.0f; -//item glow brightness -int itemglowbrightness = 10; +//item glow brightness. Just setting things up, dont edit. +int itemglowbrightness = 10; +//Just setting things up, dont edit. bool actions_t = false; bool esp_t = false; bool aim_t = false; @@ -135,6 +181,8 @@ bool next2 = false; bool valid = false; bool lock = false; + +//Player Definitions, dont edit unless you know what you are doing. typedef struct player { float dist = 0; @@ -158,20 +206,26 @@ typedef struct player }player; - +//Your in the matrix neo. struct Matrix { float matrix[16]; }; + +//Visual check and aim check.? float lastvis_esp[toRead]; float lastvis_aim[toRead]; + +//Specator stuff. Just setting things up, dont edit. int tmp_spec = 0, spectators = 0; int tmp_all_spec = 0, allied_spectators = 0; + ////////////////////////////////////////////////////////////////////////////////////////////////// + void ProcessPlayer(Entity& LPlayer, Entity& target, uint64_t entitylist, int index) { int entity_team = target.getTeamId(); @@ -194,12 +248,17 @@ void ProcessPlayer(Entity& LPlayer, Entity& target, uint64_t entitylist, int ind Vector EntityPosition = target.getPosition(); Vector LocalPlayerPosition = LPlayer.getPosition(); float dist = LocalPlayerPosition.DistTo(EntityPosition); + //Prints POS of localplayer for map cords for full map radar. only enable when adding a new map or fixing a old one, will output to console. //std::printf(" X: %.6f || Y:%.6f",LocalPlayerPosition.x, LocalPlayerPosition.y); //Prints x and y cords of localplayer to get mainmap radar stuff. if (dist > aimdist) return; - + + + //Firing range stuff if(!firing_range) if (entity_team < 0 || entity_team>50 || entity_team == team_player) return; + + //Vis check aiming? dunno if(aim==2) { if((target.lastVisTime() > lastvis_aim[index])) @@ -231,6 +290,8 @@ void ProcessPlayer(Entity& LPlayer, Entity& target, uint64_t entitylist, int ind lastvis_aim[index] = target.lastVisTime(); } + +//Main stuff, dont edit. void DoActions() { actions_t = true; @@ -284,7 +345,9 @@ void DoActions() { continue; } - + + + //Dont edit. max = 999.0f; tmp_aimentity = 0; tmp_spec = 0; @@ -292,6 +355,7 @@ void DoActions() if(firing_range) { int c=0; + //Ammount of ents to loop, dont edit. for (int i = 0; i < 10000; i++) { uint64_t centity = 0; @@ -396,7 +460,7 @@ void DoActions() player players[toRead]; - +//ESP loop.. this helps right? static void EspLoop() { esp_t = true; @@ -448,6 +512,7 @@ static void EspLoop() if(firing_range) { int c=0; + //Ammount of ents to loop, dont edit. for (int i = 0; i < 10000; i++) { uint64_t centity = 0; @@ -484,11 +549,13 @@ static void EspLoop() } Vector bs = Vector(); + //Change res to your res here, default is 1080p but can copy paste 1440p here WorldToScreen(EntityPosition, m.matrix, 1920, 1080, bs); //2560, 1440 if (esp) { Vector hs = Vector(); Vector HeadPosition = Target.getBonePositionByHitbox(0); + //Change res to your res here, default is 1080p but can copy paste 1440p here WorldToScreen(HeadPosition, m.matrix, 1920, 1080, hs); //2560, 1440 float height = abs(abs(hs.y) - abs(bs.y)); float width = height / 2.0f; @@ -564,11 +631,13 @@ static void EspLoop() } Vector bs = Vector(); + //Change res to your res here, default is 1080p but can copy paste 1440p here WorldToScreen(EntityPosition, m.matrix, 1920, 1080, bs); //2560, 1440 if (esp) { Vector hs = Vector(); Vector HeadPosition = Target.getBonePositionByHitbox(0); + //Change res to your res here, default is 1080p but can copy paste 1440p here WorldToScreen(HeadPosition, m.matrix, 1920, 1080, hs); //2560, 1440 float height = abs(abs(hs.y) - abs(bs.y)); float width = height / 2.0f; @@ -617,7 +686,7 @@ static void EspLoop() } esp_t = false; } - +//Aimbot Loop stuff static void AimbotLoop() { aim_t = true; @@ -654,7 +723,7 @@ static void AimbotLoop() } aim_t = false; } - +//Client memory vars/reads. HAVE to match windows client numbers. static void set_vars(uint64_t add_addr) { printf("Reading the client vars...\n"); @@ -845,7 +914,7 @@ static void set_vars(uint64_t add_addr) uint64_t itemglowbrightness_addr = 0; client_mem.Read(add_addr + sizeof(uint64_t)*91, itemglowbrightness_addr); - + //good god 91 of em.. why uint32_t check = 0; @@ -853,6 +922,7 @@ static void set_vars(uint64_t add_addr) if(check != 0xABCD) { + //Add offset msg printf("Incorrect values read. Check if the add_off is correct. Quitting.\n"); active = false; return; @@ -869,6 +939,7 @@ static void set_vars(uint64_t add_addr) while(c_Base!=0 && g_Base!=0) { + //same as above, has to match with eveything else std::this_thread::sleep_for(std::chrono::milliseconds(1)); client_mem.Write(g_Base_addr, g_Base); client_mem.Write(spectators_addr, spectators); @@ -959,10 +1030,6 @@ static void set_vars(uint64_t add_addr) client_mem.Read(aimdist_addr, aimdist); client_mem.Read(itemglowbrightness_addr, itemglowbrightness); - - - - if(esp && next2) { @@ -1003,7 +1070,8 @@ static void item_glow_t() uint64_t entitylist = g_Base + OFFSET_ENTITYLIST; if (item_glow) { - for (int i = 0; i < 10000; i++) + //item ENTs to loop, 10k-15k is normal. 10k might be better but will not show all the death boxes i think. + for (int i = 0; i < 15000; i++) { uint64_t centity = 0; apex_mem.Read(entitylist + ((uint64_t)i << 5), centity); @@ -1017,14 +1085,17 @@ static void item_glow_t() { //item.enableGlow(); } + //Item filter glow name setup and search. char glowName[200] = { 0 }; uint64_t name_ptr; apex_mem.Read(centity + OFFSET_MODELNAME, name_ptr); apex_mem.ReadArray(name_ptr, glowName, 200); + //Prints stuff you want to console //if (strstr(glowName, "mdl/weapons/")) //{ //printf("%s\n", glowName); //} + //Search model name and if true sets glow, must be a better way to do this.. if only i got the item id to work.. if (lightbackpack && strstr(glowName, "mdl/humans_r5/loot/w_loot_char_backpack_light.rmdl")) { apex_mem.Write(centity + OFFSET_GLOW_ENABLE, 1); @@ -1065,6 +1136,7 @@ static void item_glow_t() apex_mem.Write(centity + GLOW_COLOR_B, 128 / itemglowbrightness); // b } + //item id would help so much here, cant make them all the same color so went with loba glow for body shield and helmet if (shieldupgrade && strstr(glowName, "mdl/weapons_r5/loot/_master/w_loot_cha_shield_upgrade_body.rmdl")) { item.enableGlow(); @@ -1111,7 +1183,7 @@ static void item_glow_t() } - + //Gas Trap if (strstr(glowName, "mdl/props/caustic_gas_tank/caustic_gas_tank.rmdl")) { apex_mem.Write(centity + OFFSET_GLOW_ENABLE, 1); @@ -1736,13 +1808,15 @@ static void item_glow_t() } k=1; + //Change the 60 ms to lower to make the death boxes filker less. std::this_thread::sleep_for(std::chrono::milliseconds(60)); } else { if(k==1) { - for (int i = 0; i < 10000; i++) + //same and the ents above to turn the glow off + for (int i = 0; i < 15000; i++) { uint64_t centity = 0; apex_mem.Read(entitylist + ((uint64_t)i << 5), centity); @@ -1768,6 +1842,7 @@ int main(int argc, char *argv[]) { if(geteuid() != 0) { + //run as root.. printf("Error: %s is not running as root\n", argv[0]); return 0; } @@ -1777,7 +1852,7 @@ int main(int argc, char *argv[]) //const char* ap_proc = "EasyAntiCheat_launcher.exe"; //Client "add" offset - uint64_t add_off = 0x140990; + uint64_t add_off = 0x1409a0; //todo make this auto update.. std::thread aimbot_thr; std::thread esp_thr; diff --git a/apex_guest/Client/Client/Client.vcxproj b/apex_guest/Client/Client/Client.vcxproj index 4d37e2e..fb98142 100644 --- a/apex_guest/Client/Client/Client.vcxproj +++ b/apex_guest/Client/Client/Client.vcxproj @@ -17,6 +17,7 @@ Client 10.0 Client + net6.0 @@ -25,6 +26,7 @@ v143 Unicode false + false Application @@ -52,6 +54,7 @@ $(DXSDK_DIR)Lib\x64;$(LibraryPath) $(DXSDK_DIR)Include;$(IncludePath) MonkeyCure + true false diff --git a/apex_guest/Client/Client/main.cpp b/apex_guest/Client/Client/main.cpp index f49e223..c2118c1 100644 --- a/apex_guest/Client/Client/main.cpp +++ b/apex_guest/Client/Client/main.cpp @@ -227,10 +227,10 @@ typedef struct DWORD B; DWORD A; }RGBA; -static void FilledRectangle(int x, int y, int w, int h, RGBA color) -{ - ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(x, y), ImVec2(x + w, y + h), ImGui::ColorConvertFloat4ToU32(ImVec4(color.R / 255.0, color.G / 255.0, color.B / 255.0, color.A / 255.0)), 0, 0); -} +//static void FilledRectangle(int x, int y, int w, int h, RGBA color) +//{ +// ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(x, y), ImVec2(x + w, y + h), ImGui::ColorConvertFloat4ToU32(ImVec4(color.R / 255.0, color.G / 255.0, color.B / 255.0, color.A / 255.0)), 0, 0); +//} //Color Team Radar Test. oh god why... This is stupid.. dont do this.. it works tho static void Team1(int x, int y, int w, int h, RGBA color) @@ -816,8 +816,6 @@ int main(int argc, char** argv) add[90] = (uintptr_t)&aimdist; add[91] = (uintptr_t)&itemglowbrightness; - - printf(XorStr("Game Version v3.0.12.19 |-| Main Map Radar Test |-| Add me offset: 0x%I64x\n"), (uint64_t)&add[0] - (uint64_t)GetModuleHandle(NULL));