Jump to content

  • Log in with Facebook Log in with Twitter Log In with Google      Sign In   
  • Create Account

Memory Protection Modification


  • Please log in to reply
3 replies to this topic

#1 Wowman77

Wowman77

    Lurker

  • Members
  • 2 posts
  • LocationAre you a stalker?
  • Graphics Card:Intel HD Graphics 3000 384 MB
  • Operating System:OS X 10.9 (Mavericks)

Posted 05 April 2014 - 01:23 AM

* Noob user alert *

If you don't want to read through my problem, this is my question. Basically, I just need to know how to change a programs memory protection attributes so I can easily alter the value of a specified variable. Any answers?

____________________________________________________________________________________


I was attempting to modify the amount of money on a game that I had, particularly CSR Racing. Upon locating 4 files that were associated with how much money that was contained on my profile, I changed all files to a ridiculously large integer. *I did try to narrow the search but these were always the results which came up* When I altered them, it kept three of the variable values the same as they were in the beginning. Although it changed the value of the other to my specified amount, it quickly decreased to it's original value of 2833 for some reason, thus not allowing me to hack the money. On another instance of changing the values, it gave me an error saying that I was unable to change the variable value, and that I may go to the Memory Protection area to possibly modify it there. I thought that that would allow me to change the preferences of the game to allow that one variable to change it's value of money whenever I wanted to modify it. So for help, I went on the wiki page, and saw a link labeled, "Memory Protection". I read over it many times, but still wasn't able to piece together how I was supposed to change the memory.

This is what I saw in the beginning when I went to modify the data

Address                   Value                Type

0x12DBAC38           2833                Int 32
0x12DBAC44           2833                Int 32
0x12DBAC4C          2833                Int 32
0x12DBAC54           2833                Int 32

______________________________________________________



Address                   Value                Type

0x12DBAC38           2833                Int 32
0x12DBAC44           2833                Int 32
0x12DBAC4C          2833                Int 32
0x12DBAC54           2147483647    Int 32

After the value cap value of 2147483647 was put it, it immediately decreased to the value of 2833, and none of the other values were changed

#2 Zorg

Zorg

    Professional Member

  • Members
  • PipPipPipPip
  • 147 posts
  • LocationSpace
  • Graphics Card:I don't know.
  • Operating System:Other OS/Not specified
  • I like to play:Arcade, Side Scrollers

Posted 05 April 2014 - 04:47 AM

View PostWowman77, on 05 April 2014 - 01:23 AM, said:

* Noob user alert *

If you don't want to read through my problem, this is my question. Basically, I just need to know how to change a programs memory protection attributes so I can easily alter the value of a specified variable. Any answers?

____________________________________________________________________________________

Select the variable and go to Tools -> Show Variable -> Memory Viewer in the menu bar. Then go to Memory -> Change Memory Protection in the menu bar, and make the protection writable. 1.7 actually makes this whole process unnecessary since it will automatically change the protection when writing to an address if needed. You probably shouldn't be looking at changing the write memory protection if you're looking at a variable whose value varies, though. So this is most likely not what you want.

Quote

I was attempting to modify the amount of money on a game that I had, particularly CSR Racing. Upon locating 4 files that were associated with how much money that was contained on my profile, I changed all files to a ridiculously large integer. *I did try to narrow the search but these were always the results which came up* When I altered them, it kept three of the variable values the same as they were in the beginning. Although it changed the value of the other to my specified amount, it quickly decreased to it's original value of 2833 for some reason, thus not allowing me to hack the money. On another instance of changing the values, it gave me an error saying that I was unable to change the variable value, and that I may go to the Memory Protection area to possibly modify it there. I thought that that would allow me to change the preferences of the game to allow that one variable to change it's value of money whenever I wanted to modify it. So for help, I went on the wiki page, and saw a link labeled, "Memory Protection". I read over it many times, but still wasn't able to piece together how I was supposed to change the memory.

The game is overwriting the values even after you alter its value. One thing I would try is watching for what instructions write to the variable (Tools -> Watch Variable -> Write accesses). Then I suppose you could try to NOP (no operation) the instructions that are found (Tools -> NOP Variable) so that the game stops writing to them.

#3 Wowman77

Wowman77

    Lurker

  • Members
  • 2 posts
  • LocationAre you a stalker?
  • Graphics Card:Intel HD Graphics 3000 384 MB
  • Operating System:OS X 10.9 (Mavericks)

Posted 05 April 2014 - 06:35 PM

No, again it didn't work. I tried to NOP that one specific variable, and it changed the value of it, but even though the game looked like I had
$ 2,147,483,647 it wouldn't register when I would go buy items. Then, I tried to write access to all variables, then NOP them, but when I changed the value of those, the value on the game wouldn't change. I must be doing something wrong...

Now, why is it that some games allow me to easily change the value of money with no questions asked? ( Crash Drive 2 ) I alter the variable value, and boom, it's done. But with some, I have to go into a long process into altering the game currency. Does it have to do with the protection that the creators apply to prevent people like me cheating them out of their $$$?

#4 Zorg

Zorg

    Professional Member

  • Members
  • PipPipPipPip
  • 147 posts
  • LocationSpace
  • Graphics Card:I don't know.
  • Operating System:Other OS/Not specified
  • I like to play:Arcade, Side Scrollers

Posted 08 April 2014 - 06:00 PM

The developers might have obscured something making it harder to cheat, but I'm not sure. The game also runs using Mono, which is kind of strange. Inside the game's app bundle, there is a file named asset_database_DefaultOSX112 (in Contents/GameData/OSX/AppDataRoot/) which contains info on how much cash each item is worth. But if you try to alter the file, the game will detect that and refuse to play to prevent cheating. I'll look and see if I can try to modify some cash but no guarantees : ).




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users