Reading Other Process' Memory in OS X?

c, macos, memory, ptrace

Solution

Use `task_for_pid()` or other methods to obtain the target process’s task port. Thereafter, you can directly manipulate the process’s address space using `vm_read()`, `vm_write()`, and others.

Problem

I've been trying to understand how to read the memory of other processes on Mac OS X, but I'm not having much luck. I've seen many examples online using `ptrace` with `PEEKDATA` and such, however it doesn't have that option on BSD [`man ptrace`]. ``` int pid = fork(); if (pid > 0) { // mess around with child-process's memory } ``` How is it possible to read from and write to the memory of another process on Mac OS X?

Original source

Related problems