我们可以修改 int 0x80 例程吗?
- Linux 2.6 与 2.4 有何不同?
- 我们可以修改源内核吗?
- 我们可以修改int 0x80服务例程吗?
- How does linux 2.6 differ from 2.4?
- Can we modify the source kernel?
- Can we modify the int 0x80 service routine?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
更新:
1. 0x80 处理程序在 2.4 和 2.6 之间本质上是相同的,尽管从处理程序调用的函数是由 2.6 中 x86-64 的“syscall”指令处理程序调用的。
2. 0x80 处理程序可以像内核的其余部分一样进行修改。
3. 修改它不会破坏任何东西,除非你删除向后兼容性。 例如,如果您愿意,您可以添加自己的痕迹或后门。 另一篇文章说,如果修改处理程序,您将破坏库和工具链,这是不正确的。 如果你破坏了调度算法,或者错误地修改了调度表,那么你就会破坏事情。
3a. 正如我最初发布的那样,扩展 0x80 服务的最佳方法是扩展系统调用处理程序。
正如内核源代码所说:
UPDATE:
1. the 0x80 handler is essentially the same between 2.4 and 2.6, although the function called from the handler is called by the 'syscall' instruction handler for x86-64 in 2.6.
2. the 0x80 handler can be modified like the rest of the kernel.
3. You won't break anything by modifying it, unless you remove backwards compatibility. E.g., you can add your own trace or backdoor if you feel so inclined. The other post that says you will break your libs and toolchain if you modify the handler is incorrect. If you break the dispatch algorithm, or modify the dispatch table incorrectly, then you will break things.
3a. As I originally posted, the best way to extend the 0x80 service is to extend the system call handler.
As the kernel source says: