如何在Linux中禁用SYSENTER Syscall支持并仅使用int$0x80

如何在Linux中禁用SYSENTER Syscall支持并仅使用int$0x80,linux,kernel,system-calls,sysenter,Linux,Kernel,System Calls,Sysenter,我试图禁用SYSENTER syscall支持,并让所有系统调用在Linux中通过int$0x80中断而不使用ptrace 我找到了两种方法: 通过将/proc/sys/vm/VDSO_启用文件修改为0,完全禁用VDSO 修改/usr/src/linux/arch/x86/vdso/vdso32 setup.c 修改虚拟动态共享对象应该是我的方法,但我不知道要修改哪些行。有人能给我一些建议吗 谢谢。为什么要这样做?我正在尝试捕获系统调用,所以我想禁用sysentry,使所有系统调用都通过int

我试图禁用SYSENTER syscall支持,并让所有系统调用在Linux中通过int$0x80中断而不使用ptrace

我找到了两种方法:

通过将/proc/sys/vm/VDSO_启用文件修改为0,完全禁用VDSO 修改/usr/src/linux/arch/x86/vdso/vdso32 setup.c 修改虚拟动态共享对象应该是我的方法,但我不知道要修改哪些行。有人能给我一些建议吗


谢谢。

为什么要这样做?我正在尝试捕获系统调用,所以我想禁用sysentry,使所有系统调用都通过int 0x80,以便更容易被捕获。这就是目的所在。这是一个晦涩难懂且缺乏文档的程序,但它适用于gdb、strace和UML,所以我相信它可以满足您的需要。具体来说,看看PTRACE_SYSCALL操作的作用。您似乎误解了我的意思。您不能使用ptrace来禁用sysenter。您可以使用ptrace捕获系统调用,从而消除禁用sysenter的任何需要。或者构建一个定制的内核。