Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I used to think that what cheat engine does is pretty much trivial: going to an address and simply modifying it but I realze now that things are not that simple. Each process has it's own virtual memory and two processes can't play with each others memory. So how exactly goes cheat engine able to modify other processes memory?

share|improve this question
Scans the writes to memory and reads to memory from a specific program. You then search for that string and modify it. You do this a few times and it will narrow down the memory address. However, if there is server side validation on the game, it may not work or do anything. In fact, if the game is searching for such modifications like Warden from Blizzard, then you may be banned. – kobaltz Feb 10 '13 at 5:00

A process can be attached to another process such that it has access to that process's memory. This is designed for debugging programs - a debugger needs to be attached to the process being debugged, and needs to be able to read any memory data, break execution, edit memory data, inject code, etc. Cheat Engine just re-purposes these debugger functions in order to cheat in games.

share|improve this answer
So, how is memory protection useful if a process has these kind of means for interprocess memory access? – Gonzalo Aug 23 '14 at 15:00

Reading about GDB may shed some light on this.

This question and this question discuss similar things.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .