替换linux内核3中的系统调用

替换linux内核3中的系统调用,第1张

概述我有兴趣用我将在 linux内核3中实现的自定义替换系统调用. 我读到sys调用表不再暴露. 有任何想法吗? 任何对此http://www.linuxtopia.org/online_books/linux_kernel/linux_kernel_module_programming_2.6/x978.html示例的引用,但对于内核3将不胜感激:) 谢谢! 我建议使用kprobes来完成这种工作, 我有兴趣用我将在 linux内核3中实现的自定义替换系统调用.
我读到sys调用表不再暴露.

有任何想法吗?

任何对此http://www.linuxtopia.org/online_books/linux_kernel/linux_kernel_module_programming_2.6/x978.html示例的引用,但对于内核3将不胜感激:)

谢谢!

解决方法 我建议使用kprobes来完成这种工作,你可以轻松打破任何内核地址(或符号……)并在运行时改变执行路径,所有这一切都需要内核模块,如果你需要:)

kprobes通过中断(例如x86上的int3)动态替换指令(例如,系统调用条目的第一条指令)来工作.在do_int3处理程序中,通知程序通知kprobes,而kprobes又将执行传递给您的注册函数,此时您几乎可以执行任何 *** 作.

在Documentation/kprobes.txt中给出了一个非常好的文档,这是samples/kprobes/kprobes_example.c中的一个小例子(在这个例子中,它们在do_fork中断以记录系统上的每个fork).它有一个非常简单的API,现在非常便携.

警告:如果你需要改变执行路径,请确保你的kprobe没有被优化(即你的处理程序的jmp指令替换你打破的指令而不是int3)otherwize你将无法真正改变执行(在你的函数返回之后,系统调用函数仍将像往常一样执行).如果您只对跟踪感兴趣,那么这很好,您可以放心地忽略此问题.

总结

以上是内存溢出为你收集整理的替换linux内核3中的系统调用全部内容,希望文章能够帮你解决替换linux内核3中的系统调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/1021920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存