mockba.the.borg Posted July 12, 2016 Share Posted July 12, 2016 Hi everyone, I want to modify global 0x272A34 in-memory using CE. Does anyone know how to do it? I believe I will have to search for it so I can find its pointer, and then go look for the value that pointer points to and change it, but I have never tried before. So, if someone already did it before and could share some insight? Thanks, Mockba. Link to comment Share on other sites More sharing options...
unknown modder Posted July 13, 2016 Share Posted July 13, 2016 Hi everyone, I want to modify global 0x272A34 in-memory using CE. Does anyone know how to do it? I believe I will have to search for it so I can find its pointer, and then go look for the value that pointer points to and change it, but I have never tried before. So, if someone already did it before and could share some insight? Thanks, Mockba. You're trying to spawn the new cars. You need to find the global base pointer, then certain bits of the global index is used to reference which table to look at, the rest is the index of the global table. I couldnt help you get the global base pointer though(mainly because i havent updated my game yet) jedijosh920 1 Link to comment Share on other sites More sharing options...
mockba.the.borg Posted July 13, 2016 Author Share Posted July 13, 2016 Yes, I am trying to spawn the new cars, to double check the hashes I posted before. I saw that there's some calculation taking place to obtain the pointer from the global index, but, supposing your game were updated, what would be the process to obtain the global base pointer? If you could tell me the process, even for your current version of the game, I am sure I would be able to extrapolate it to the new version. Thanks, Mockba. Link to comment Share on other sites More sharing options...
unknown modder Posted July 13, 2016 Share Posted July 13, 2016 (edited) try this Yes, I am trying to spawn the new cars, to double check the hashes I posted before. I saw that there's some calculation taking place to obtain the pointer from the global index, but, supposing your game were updated, what would be the process to obtain the global base pointer? If you could tell me the process, even for your current version of the game, I am sure I would be able to extrapolate it to the new version. Thanks, Mockba. I checked in scripts and the only cars you had wrong were the trophy and trophy2 which should be trophytruck and trophytruck2 There is another way around this problem(as well as a more elegant solution to this method) long long Address = MemoryAPI.FindPattern("5F 34 2A 27 56 04 00 6E 2E 00 01 5D 32 46 00 2A");//this would need to search all the game memory, the game would hang for a few secondsif (Address != 0){ *(unsigned char*)(Address + 0x4D) = 0x6E;} The same thing could be done manually using cheat engine. Instead of setting the global this modifys the running instance of the shop_controller to just disable the check outright. EDIT. I know a way of searching for the global pointer, If you want I could generate a signature that you could run and it'll find the address for you Edited July 13, 2016 by unknown modder Link to comment Share on other sites More sharing options...
mockba.the.borg Posted July 13, 2016 Author Share Posted July 13, 2016 Thanks... it would be cool to learn the method for searching the global pointer, as then I would be able to research and play with other globals too. If you could get me the signature it would be awesome. Thanks, Mockba Link to comment Share on other sites More sharing options...
unknown modder Posted July 13, 2016 Share Posted July 13, 2016 not tested at all. but this should work long long **GlobalBasePointer;bool FindGlobalAddress(){ long long Address = MemoryAPI::FindPattern("4C 8D 05 ?? ?? ?? ?? 4D 8B 08 4D 85 C9 74 11");//only needs to search where execuatble is loaded, not the full process memory if (Address != 0){ GlobalBasePointer = *(long long***)(Address + *(int*)(Address + 4) + 7); return true; } return false;}long long *getGlobalAddress(int index){ return &GlobalBasePointer[index >> 18][index & 0x3FFFF];} Link to comment Share on other sites More sharing options...
mockba.the.borg Posted July 13, 2016 Author Share Posted July 13, 2016 Cool ... thanks man ... I will give it a try. Link to comment Share on other sites More sharing options...
mockba.the.borg Posted July 14, 2016 Author Share Posted July 14, 2016 This one doesn't work. I had to do some modifications to make it work ... I am able to infer the Globals using CE now. Thanks for the help man. Link to comment Share on other sites More sharing options...
unknown modder Posted July 15, 2016 Share Posted July 15, 2016 This one doesn't work. I had to do some modifications to make it work ... I am able to infer the Globals using CE now. Thanks for the help man. I screwed up, it should be Address + 3 not 4 GlobalBasePointer = *(long long***)(Address + *(int*)(Address + 3) + 7); mockba.the.borg 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now