我正在使用Jprobe來監視內核函數,最終目標是在某些情況下暫停函數。我得到了Jprobe沒有問題,我暫停功能。暫停Linux內核函數
目前我試圖暫停pid,由於進程暫停,但內核函數不會暫停,因此pid失敗。它仍然完成了我不想要的工作。
我最大的希望就是劫持內核函數,這樣我就可以對函數做任何我喜歡的事情。我發現了一些關於這方面的文章,但其中大多數都過時了,內核在2.6之後發生了很大變化。我知道我應該找到函數的地址,並將第一部分字節更改爲跳到我的新函數。我有問題找到這個地址。有人知道怎麼做嗎?還是有另一種更簡單的方法來暫停功能?
編輯:我試圖使用從System.map或/ proc/kallsyms中找到的結果相同的地址,但出現錯誤。內核2.6之後似乎這樣做並不容易,任何人都知道如何做到這一點?
爲什麼不System.map中???? – Jeyaram
System.map和/ proc/kallsyms是一回事嗎?對不起,我是內核新手。 – HomeworkGT
我強烈建議使用虛擬化設置或硬件支持的遠程調試來做到這一點(與JTag一樣)。 –