jjzjj

linux - 无法在 linux 中找到 syscall_table_32.S 文件

我在虚拟机上使用linux-headers-2.6.32-21包。我要写一个新的系统调用。我找到了其他文件来写系统调用的首字母,但我无法在arch/x86/kernel/目录中找到这个syscall_table_32.S。请帮助我如何以及在何处找到此文件。怀疑是不是权限问题或者其他原因被隐藏了。 最佳答案 以下提交将其删除:commit303395ac3bf3e2cb488435537d416bc840438fcbAuthor:H.PeterAnvinDate:FriNov1116:07:412011-0800x86:Generat

linux - 无法在 linux 中找到 syscall_table_32.S 文件

我在虚拟机上使用linux-headers-2.6.32-21包。我要写一个新的系统调用。我找到了其他文件来写系统调用的首字母,但我无法在arch/x86/kernel/目录中找到这个syscall_table_32.S。请帮助我如何以及在何处找到此文件。怀疑是不是权限问题或者其他原因被隐藏了。 最佳答案 以下提交将其删除:commit303395ac3bf3e2cb488435537d416bc840438fcbAuthor:H.PeterAnvinDate:FriNov1116:07:412011-0800x86:Generat

linux - 如何避免不适合缓冲区的标准输入被发送到 Linux 64 位 Intel (x86-64) 程序集中的 shell

编辑:标题已更改,因为@Gunner指出这不是缓冲区溢出。在Linux64位Intel汇编中使用NR_read从stdin读取用户输入时,我想知道如何避免不适合输入缓冲区的输入被发送到Linuxshell例如。庆典?例如,在这个示例程序中,我定义了一个255字节的输入缓冲区(缓冲区的大小可以是>=1)。超过255字节的输入的其余部分被发送到bash(如果从bash运行),这显然是一个严重的漏洞。在Linux64位程序集中应如何读取输入以避免此漏洞?这是我的代码:[bits64]section.textglobal_start;canbecompiledeg.withnasmoryasm

linux - 如何避免不适合缓冲区的标准输入被发送到 Linux 64 位 Intel (x86-64) 程序集中的 shell

编辑:标题已更改,因为@Gunner指出这不是缓冲区溢出。在Linux64位Intel汇编中使用NR_read从stdin读取用户输入时,我想知道如何避免不适合输入缓冲区的输入被发送到Linuxshell例如。庆典?例如,在这个示例程序中,我定义了一个255字节的输入缓冲区(缓冲区的大小可以是>=1)。超过255字节的输入的其余部分被发送到bash(如果从bash运行),这显然是一个严重的漏洞。在Linux64位程序集中应如何读取输入以避免此漏洞?这是我的代码:[bits64]section.textglobal_start;canbecompiledeg.withnasmoryasm

我可以排除SIGBUS由 "minor page fault"引发吗? (内核日志没有分配失败)

动机我正在努力提高对SIGBUSerrorinXwayland的理解。自2018年2月20日左右以来,FedoraLinux的一些用户已经看到了这一点,这些用户使用Xwayland1.19.6-5.fc27.x86_64和Linux内核4.15.3-300.fc27.x86-64。可悲的是我没有kernel"segfault"logmessage(或SIGBUS的等效项)。Xwayland有一些毫无意义的代码,可以捕获致命信号。但是我可以通过调试coredump看到siginfo,这似乎差不多。定义我了解当虚拟内存的页面在RAM中不可用并且必须从磁盘读取时会发生“主要页面错误”。我想我

我可以排除SIGBUS由 "minor page fault"引发吗? (内核日志没有分配失败)

动机我正在努力提高对SIGBUSerrorinXwayland的理解。自2018年2月20日左右以来,FedoraLinux的一些用户已经看到了这一点,这些用户使用Xwayland1.19.6-5.fc27.x86_64和Linux内核4.15.3-300.fc27.x86-64。可悲的是我没有kernel"segfault"logmessage(或SIGBUS的等效项)。Xwayland有一些毫无意义的代码,可以捕获致命信号。但是我可以通过调试coredump看到siginfo,这似乎差不多。定义我了解当虚拟内存的页面在RAM中不可用并且必须从磁盘读取时会发生“主要页面错误”。我想我

linux - 为什么 golang clone syscall abi 与 x86-64 上的 linux 内核克隆不同

在glibc/sysdeps/unix/sysv/linux/x86_64/clone.S的linux内核克隆abi定义:Thekernelexpects:rax:systemcallnumberrdi:flagsrsi:child_stackrdx:TIDfieldinparentr10:TIDfieldinchildr8:threadpointer在go1.11.5/src/runtime/sys_linux_amd64.s的golang克隆系统调用://int32clone(int32flags,void*stk,M*mp,G*gp,void(*fn)(void));TEXTru

linux - 为什么 golang clone syscall abi 与 x86-64 上的 linux 内核克隆不同

在glibc/sysdeps/unix/sysv/linux/x86_64/clone.S的linux内核克隆abi定义:Thekernelexpects:rax:systemcallnumberrdi:flagsrsi:child_stackrdx:TIDfieldinparentr10:TIDfieldinchildr8:threadpointer在go1.11.5/src/runtime/sys_linux_amd64.s的golang克隆系统调用://int32clone(int32flags,void*stk,M*mp,G*gp,void(*fn)(void));TEXTru

Linux x64 : why does r10 come before r8 and r9 in syscalls?

前几天我决定试一试汇编,我一直在玩弄非常基本的东西,比如从argv打印东西到stdout。我找到了thisgreatlistoflinuxsyscallnumbers带有参数和所有内容,我很好奇为什么r10用于r8和r9之前的参数。我发现了关于什么可以用于什么以及何时使用的各种奇怪约定,例如循环计数器如何进入rcx。r10上移是否有特殊原因?是不是更方便?我可能还应该提到我对此感兴趣是出于好奇,而不是因为它给我带来了问题。编辑:我找到了thisquestion接近,引用thex64ABIdocumentation在第124页上,它指出用户级应用程序使用rdi、rsi、rdx、rcx、r

Linux x64 : why does r10 come before r8 and r9 in syscalls?

前几天我决定试一试汇编,我一直在玩弄非常基本的东西,比如从argv打印东西到stdout。我找到了thisgreatlistoflinuxsyscallnumbers带有参数和所有内容,我很好奇为什么r10用于r8和r9之前的参数。我发现了关于什么可以用于什么以及何时使用的各种奇怪约定,例如循环计数器如何进入rcx。r10上移是否有特殊原因?是不是更方便?我可能还应该提到我对此感兴趣是出于好奇,而不是因为它给我带来了问题。编辑:我找到了thisquestion接近,引用thex64ABIdocumentation在第124页上,它指出用户级应用程序使用rdi、rsi、rdx、rcx、r