如何在插入.ko模块之前获取其加载地址?

时间:2019-07-03 11:21:08

标签: debugging linux-kernel linux-device-driver kernel-module

需要将内核模块(* .ko)加载到的内存地址,因此访问该地址时,我可以闯入系统。

似乎有很多文章建议如何在事后获得它,例如从/ proc / modules。很好,但这是事实。

即使在运行时加载或卸载模块,也不能保证始终将模块加载到同一地址。 是否有解决方法?我希望insmod有一个地址参数,但似乎我错了。

1 个答案:

答案 0 :(得分:0)

我用答案结束了自己的问题。

最佳评论或答案来自上面评论中的@Tsyvarev。注释-请参见register_module_notifier-告诉您如何在运行时使用自己的代码说出地址。 (我没有使用它,因为我不需要它。)

对于我来说,我需要使用它来通过外部硬件监视器进行调试,并且我可以根据需要设置调试器以在module_alloc上中断系统。 (而且我可以控制何时加载特定模块。)

因此,所有这些-上面的两种方式-在此说明了如何在“加载”模块之前获取地址。