在调试进程中分配内存

Alloc memory in debugged process

我正在使用 ptrace 系统调用附加一个进程。可以使用 peek 和 poke read/write 内存,但我想在远程进程中分配一些内存。可以这样做吗?

i want to alloc some memory in the remote process. Is it possible to do this ?

大概您想使用进程自己的 malloc 分配一些内存。存在证明:

(gdb) start
(gdb) print malloc(20)
 = 0x820430

所以是的,这是可能的。

然而细节相当混乱:你需要读取劣质进程的符号 table 才能找到它 malloc 的位置,然后构建适当的调用框架并转移控制使用正确的 ABI 为您的目标进程访问 mallocs 地址,最后清理所有这些。

这比您在 问题中要求的至少难 10 倍。