0
我指的是: http://www-users.cs.umn.edu/~boutcher/kprobes/kprobes.txt.html以瞭解kprobe。我使用了doc中給出的kprobe_example.c。insmod:錯誤:無法插入模塊kprobe_example.ko:不允許操作
我使用生成文件(即在同一文檔拍攝代碼)
我得到的編譯錯誤,因爲我的內核版本是4.2,有些領域在結構pt_regs被改變編譯它。因此,我用ip和eflag替換了eipg,並在kprobe_example.c中標記爲https://gist.github.com/murlee417/87c2eb43a6afa1954b05404a07813e81。然後我能夠成功編譯它。現在
,作爲根用戶,我所做的:
#insmod kprobe_example.ko
和我:
insmod: ERROR: could not insert module kprobe_example.ko: Operation not permitted
我的消息緩衝區有:
#dmesg
[ 4537.478408] Couldn't find do_fork to plant kprobe
請幫我解決這個錯誤,並使insmod工作。
'我得到了編譯錯誤,因爲我的內核版本是4.2,有些領域在結構pt_regs.'被改變 - 不僅是單個結構被改變。 [函數'do_fork'的定義](http://lxr.free-electrons.com/source/kernel/fork.c?v=4.2#L1753)與配置宏* HAVE_COPY_THREAD_TLS *相關。可能這個宏是爲你的情況定義的(檢查內核構建目錄下的'.config'文件),所以這個函數根本不存在。如果是這種情況,只需更改函數的名稱以進行探測。 – Tsyvarev
我用do_mkdir替換了do_fork,並且能夠解決該錯誤。將來,我會一直在尋找內核版本的內核函數。非常感謝Tsyvarev。 – Murali