在调试进程中分配内存
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 为您的目标进程访问 malloc
s 地址,最后清理所有这些。
这比您在 问题中要求的至少难 10 倍。
我正在使用 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 为您的目标进程访问 malloc
s 地址,最后清理所有这些。
这比您在