use*_*070 5 system-calls linux-kernel
我试图挂钩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上按预期工作,其中存在套接字系统调用.
小智 0
你好,我就像你一样在寻找一种直接调用系统调用的方法,例如:socket、bind等。
在互联网上搜索我发现您可以调用此文件中定义的系统调用:
/usr/include/i386-linux-gnu/asm/unistd_32.h
例如, for 的系统socket调用十进制为 359,而 for 的系统bind调用十进制为 361
全部在 x86_32 中测试
| 归档时间: |
|
| 查看次数: |
721 次 |
| 最近记录: |