我试图挂钩linux x86_32上的套接字系统调用.此系统调用不存在,但通过socketcall进行门控.
男人socketcall: socketcall() is a common kernel entry point for the socket system calls. call determines which socket function to invoke. args points to a block containing the actual arguments, which are passed through to the appropriate call.
我用自己的函数挂钩了这个系统调用(__NR_socketcall在我的系统上是102,也在http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html上说明),它打印了一些内容并调用了之后的原始功能.但是,我的函数永远不会被调用.此外,strace显示调用了socket()系统调用.
基本问题:如何在linux x86_32上挂接套接字系统调用?
子问题:为什么strace显示socket()系统调用而不是socketcall()?
一切都在x86_64上按预期工作,其中存在套接字系统调用.