信号处理程序必须在用户空间中运行。如果它们在内核空间中运行,则它们可以访问整个机器中的任何内容(因为内核可以控制所有进程)。因此,恶意程序可以通过简单地向自身发送信号来轻松破坏其他程序的内存、窃取数据或更糟的情况。
一般来说,信号是在用户空间中执行的。然而,由于 C 语言标准实际上并未定义用户空间和内核空间之间的分离,因此可以想象,可能存在并非如此的 C 语言实现。
但请注意,在 Windows 和所有版本的 Unix 中,信号保证在用户空间中运行。
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |