-
Notifications
You must be signed in to change notification settings - Fork 74
Memory Protection
Bennett Blodinger edited this page Mar 18, 2017
·
1 revision
Memory is separated by pages. Programs typically use a page size of 4096 bytes (but don't rely on this).
Each page has a memory protection, which are three independent attributes that are either enabled or disabled: read, write, and execute.
If a page is not readable, that means one can't read from it. If it is not writable, one can't write data into it. Lastly, if a page isn't executable, the program can't execute code from it.
The way around this, if one wants to write data into a non-writable page for example, is to change the memory protection on the page. This can be done manually or through scripting.
To do this manually:
- Have a search window, the Memory Viewer, or Debugger window open
- Optionally select what contents in the window whose protection to change
- Change or view the current protection by going to Memory -> Change Memory Protection - this will round to the nearest virtual memory page
Searching
- Introduction to Searching
- Data Types
- Storing All Values
- Pointers
- Search Windows
- Pausing Targets
- Web Games
Memory
Debugging
Scripting