title: How to change a value in memory space of another process
body: <p>If you could help me with this dilemma I have. Now, I know C \ C++, I know asm, I know about dll injection, I know about virtual memory addressing, but I just can't figure out how
  software like CheatEngine, and others, manage to change a variable's value in another process.</p>
  
  <p>For those who don't know, 3rd party cheat engine tools can scan for values in the memory space of a program and identify the location of a variable with a given value and change it.</p>
  
  <p>My question is, how do they do it?</p>
  
  <p>Given an address, if I were to write C code, how could I change the value at that address belonging to another process without getting an invalid addressing error?</p>
  
  <p>Thanks.</p>