Memory leaks and accessing data from other processes are two unrelated things.
Leaking or not, memory is confined by the operating system to a single process.
To access other process memory, you need to ask the operating system with specific functions like ReadProcessMemory()
on windows.
Usually it will require administrator privilege level.
Now for "leaks". A leak occurs when you repeatedly fail to free a block of memory, so that over time an increasing amount of process memory is not reclaimed, causing ever increasing unneeded memory consumption.
When you do free a memory block, the memory allocator itself might write some bookkeping and/or debug data into it, so freeing a block of memory is likely to alter its contents even if it is not re-allocated later (and very likely overwritten by new contents).
Seen from a "spy" which has no knowledge of how a given process uses it, the memory is just a big chunk of binary data, so there is no difference between a "live" or "leaked" allocated block.
Either the "spy" knows about the spied process memory organization and can decode its data precisely, or it just has to guess.