【发布时间】:2020-07-15 18:15:30
【问题描述】:
当我在 arm linux 中使用 gdb 调试进程时,我可以使用像 call write(123,"abc",3) 这样的调用
gdb 如何将该调用注入进程并恢复全部?
【问题讨论】:
-
考虑断点在 Linux ARM 设备上的工作方式。调试器已经在断点处打断了代码执行,所以只需按照ARM ABI对参数进行封送处理,调用指定的入口点即可。返回值通常在寄存器中,被转换为显示,调试器等待你的下一条指令。
-
这个问题太宽泛了。见:github.com/eklitzke/ptrace-call-userspace
-
GDB 是一个开源实用程序,建议阅读源代码,从:
https://www.gnu.org/software/gdb/current/开始,然后通过:git clone git://sourceware.org/git/binutils-gdb.git检索源代码并可以通过:sudo apt install git安装git