首页 > 解决方案 > 如何防止另一个进程使用 ptrace 调试系统调用

问题描述

在 ptrace 中,我可以使用此步骤调试另一个进程以打印远程进程 call.l 的所有系统调用编号。

  1. 使用 PTRACE_ATTACH 附加到进程。
  2. waitpid(带有 `__WALL 标志)以确保远程进程已停止。
  3. 在使用 PTRACE_PEEKUSER 存储系统调用号的寄存器上的 while (cond) 打印

远程进程如何防止这种情况?是否有任何信号可以注册和打印“停止调试我!!”?

PTRACE_ATTACH 为远程进程发送 SIGSTOP,但进程无法处理。并且 PTRACE_PEEKUSER 不向远程进程发送任何信号。

标签: clinuxptrace

解决方案


推荐阅读