如果有人想要在Linux中编写内核模块这个疯狂而危险的想法......
然后......
答案 0 :(得分:1)
用零(在x86中)覆盖进程的代码很可能不会阻止进程执行,但由于这成为一个简单的指令,我认为ADD EAX,[EAX],它将一直走到代码段的结尾[除非EAX指向无效的内存]。显然,如果进程的寄存器被设置为某个无效的内存地址[在64位中,非规范的值将是好的,在32位中,是一种写保护的,如零],以及/或者内存中充满了导致“无效操作码”的内容,那么这将是另一回事。
我真的不知道这比使用SIGKILL
(又名KILL -9 pid
)更好“ - 如果进程被阻塞在内核中并且不知何故没有离开内核,它就赢了”有助于覆盖代码空间,因为该进程无论如何都没有运行该代码。如果内核中存在错误,那么对进程的用户空间内存做什么并不重要。修复内核错误!