I am trying to make a small utility that will search a process's memory for a specified value. I am currently able to both read and write memory values. But I'm not sure how I would go about scanning the memory for a value and getting it's base address. Could someone please enlighten me on how to do this or point me towards a resource which will help me figure this out?


If your program can already read random memory locations then what's the problem? You have to know the address before you can read it. Just be aware that any given address in your program's memory is a virtual address, not a real RAM memory address. A program can not normally read memory outside its own address space.

The program can read arbitrary memory locations with specified lengths. But my question really is that how do I know where (What memory location) to start searching from and where to stop searching. And do I need to go over every single "Block"(sizeof value) of memory. I believe it has something to do with using the mapped memory files but not sure.