2012-01-12 220 views
6

我知道您可以通过使用ptrace来捕获系统调用。但是我想要做的就是忽略系统调用。因此,ptrace可能会捕获一个系统调用,查看其编号,如果该编号是必须忽略的系统调用,则系统调用将停止继续或系统调用立即返回。忽略系统调用

问题是,我们应该通过使用ptrace来让应用程序忽略特定的系统调用。

回答

3

您可以试试PTRACE_GETREGSPTRACE_SETREGS
如果您将eip更改为系统调用后,并且eax将返回值设为有效,则可能会跳过呼叫。
但我没有尝试它,如果它不起作用,也不会感到惊讶。

+0

将eip更改为系统调用后!这并不容易,我的朋友:(! – MetallicPriest 2012-01-12 19:35:19

+3

@MettalicPriest:不容易,但为了改变被感染的程序的行为,你需要仔细研究机器内部的状态。 – 2012-01-12 22:19:02