KingX735 (07-14-2017)
So, with this new update of BO3, many values are protected--if you change them, the game immediately exits. Luckily, the integer next to these protected values is used to determine if they were changed. The game runs the value through some operations and then checks if the two values are equal, and if they are not then exit.
So, I have made a function to change those protected values by generating the integer next to it as well:
This has worked for the protected values that I have tested (timescale, exposure, gun position, etc.). Also, I am aware that the value doesn't have perfect precision, so if you choose values like 0.2 or 0.01, then the game will still immediately exit. This is most likely an inaccuracy with the multiplication factor or something else. Let me know if you need anything or have issues.Code:void SetProtectedValue(long long address, float value) { char buffer[8]; *(float *)buffer = value; *(unsigned int *)(buffer + 4) = (unsigned int)(*(unsigned int *)&value * 1.0000152587890625) ^ 1797376816; WriteProcessMemory(process, (void *)address, buffer, 8, 0); }
EDIT: If you need precision for timescale, use this unprotected timescale: "blackops3.exe"+14F58CD0
Last edited by JerryIsReal; 07-13-2017 at 05:22 PM.
KingX735 (07-14-2017)
MisterY, Can you add this in your trainer?
Very useful information.
/Stuck.
Click Here to visit the official MPGH wiki! Keep up with the latest news and information on games and MPGH! To check out pages dedicated to games, see the links below!
dd/mm/yyyy
Member - 31/01/2015
Premium - 12/09/2016
Call of Duty minion - 05/11/2016 - 05/11/2019
BattleOn minion - 28/02/2017 - 05/11/2019
Battlefield minion - 30/05/2017 - 05/11/2019
Other Semi-Popular First Person Shooter Hacks minion - 21/09/2017 - 17/09/2019
Publicist - 07/11/2017 - 02/08/2018
Cock Sucker - 01/12/2017 - Unknown
Minion+ - 06/03/2018 - 05/11/2019
Fortnite minion - 08/05/2018 - 05/11/2019
Head Publicist - 08/10/2018 - 10/01/2020
Developer Team - 26/10/2019 - 10/01/2020
Former Staff - 10/01/2020
Nice findings man!
For integers and bytes it's the same idea:
Code:void SetProtectedValueI(long long address, DWORD value) { char buffer[8] = { 0 }; *(DWORD *)buffer = value; *(unsigned int *)(buffer + 4) = value ^ 2742259087; WriteProcessMemory(process, (void *)address, buffer, 8, 0); }
Click Here to visit the official MPGH wiki! Keep up with the latest news and information on games and MPGH! To check out pages dedicated to games, see the links below!
dd/mm/yyyy
Member - 31/01/2015
Premium - 12/09/2016
Call of Duty minion - 05/11/2016 - 05/11/2019
BattleOn minion - 28/02/2017 - 05/11/2019
Battlefield minion - 30/05/2017 - 05/11/2019
Other Semi-Popular First Person Shooter Hacks minion - 21/09/2017 - 17/09/2019
Publicist - 07/11/2017 - 02/08/2018
Cock Sucker - 01/12/2017 - Unknown
Minion+ - 06/03/2018 - 05/11/2019
Fortnite minion - 08/05/2018 - 05/11/2019
Head Publicist - 08/10/2018 - 10/01/2020
Developer Team - 26/10/2019 - 10/01/2020
Former Staff - 10/01/2020
Hey Jerry, I'm attempting to use your method but it doesn't appear to be functioning correctly, did they change something in the last TU related to this?