OK I have a bit of a programming problem. I am trying to read the memory of other processes. I can do it, but the problem is some memory is protected so I can't read it. The Windows API function I'm using, ReadProcessMemory, fails if the start point I give it is at protected memory, even if some of the total memory range isn't protected... so, I can't tell where the protected memory area ends.
I have a less confusing and more thorough explanation here, which you should read.
So basically I need to figure out what ranges of a process' memory are protected without using trial and error. I can't find an API function for it. Help?
Here are some pretty pictures:
This is what happens when I read an entire block which is unprotected.
The same block, but except I went back 0x10 bytes into a protected area... the entire read failed, and I have no way of knowing where the protected block ends (well, I mean in a general sense).
I have a less confusing and more thorough explanation here, which you should read.
So basically I need to figure out what ranges of a process' memory are protected without using trial and error. I can't find an API function for it. Help?
Here are some pretty pictures:
This is what happens when I read an entire block which is unprotected.
The same block, but except I went back 0x10 bytes into a protected area... the entire read failed, and I have no way of knowing where the protected block ends (well, I mean in a general sense).