关于信号处理程序中的非信号安全系统调用

时间:2020-05-19 14:33:50

标签: linux assembly signals x86-64 ptrace

我正在尝试使用ptrace在linux中实现CreateRemoteThread。 主要问题是mmap和clone系统调用不是信号安全的,因此直接注入它们很危险。

但是如果我可以确保没有待处理的mmap并在内核中克隆该进程的系统调用怎么办?

例如, 首先,我附加目标进程的所有线程,并检查rip的前2个字节是否为0x0f 0x05(syscall)。 如果是,请从orig_rax reg获取系统调用号,并检查它是9(mmap)还是56(clone)。 如果是这样,我将rip中的地址设置为0xcc(int3)并继续该线程。 当我从这些线程接收到SIGTRAP时,这些系统调用应该完成,并且在该过程中不应有未决的mmap和克隆系统调用。

现在使用mmap和克隆系统调用安全吗?

0 个答案:

没有答案
相关问题