[Tutor] using while loop for read process memory
Michael C
mysecretrobotfactory at gmail.com
Thu Oct 12 21:54:10 EDT 2017
Here is my question about the memory:
So I have a base address of a chunk of memory from it's size, from
VirtualQueryEx
(if you dont use windows, it's ok, it's not about how u get these values,
because I think
the base concept is the same)
start = mbi.BaseAddress
finish = mbi.RegionSize
So at this time, I use while and this is how it looks like
while index < finish:
# access the memory here:
while memory function( index)
# then index += 1, for the inner loop
## this line complete the outer while loop
index += mbi.RegionSize
so Why did I put down index += 1 ?
That's because what I think about the memory looks like this
(short)(int)(double)(int)(int)(int)(double) and so on,
since I can't predict which address is the beginning of a double, the only
way
to deal with that is to use increment by 1.
Now, from what I have been reading, it seems there is a better way to do it,
for instance, a for loop.
for(start,finish, 8)
why 8? because double begins at exact 0 or multiple of 8 bytes, right?
On Sun, Oct 8, 2017 at 4:46 PM, Alan Gauld via Tutor <tutor at python.org>
wrote:
> On 08/10/17 20:18, Michael C wrote:
> > This is the red part
> > index = current_address
> > end = current_address + mbi.RegionSize
> >
> > while index < end:
> > if ReadProcessMemory(Process, index, ctypes.byref(buffer), \
> > ctypes.sizeof(buffer),
> > ctypes.byref(nread)):
> > ## value comparison to be implemented.
> > pass
> > else:
> > raise ctypes.WinError(ctypes.get_last_error())
> >
> > index += 1
>
> I haven't been following this closely so may be way off here,
> but does this mean you are incrementing the memory address
> by 1? If so you are only increasing the pointer by 1 byte
> but you are, presumably, reading multiple bytes at a time
> (the size of the buffer presumably).
>
> Do you perhaps need to treat the buffer as a byte array
> and use something like the struct module to decode it?
> (assuming you know what you are reading...?)
>
> But I may be way off, I'm just going on a cursory look.
>
> --
> Alan G
> Author of the Learn to Program web site
> http://www.alan-g.me.uk/
> http://www.amazon.com/author/alan_gauld
> Follow my photo-blog on Flickr at:
> http://www.flickr.com/photos/alangauldphotos
>
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list