kprobe

    2熱度

    1回答

    我在Scientific Linux 6.3 x86_64下編寫了一個內核模塊,我正在使用kprobes。在這個模塊中,我需要訪問返回函數的第一個參數,所以jprobes不在了。 我發現這非常有幫助的帖子:Getting function arguments using kprobes 然而,當我嘗試訪問regs->rdi我探頭內,編譯器與 error: ‘struct pt_regs’ has

    0熱度

    1回答

    我指的是: http://www-users.cs.umn.edu/~boutcher/kprobes/kprobes.txt.html以瞭解kprobe。我使用了doc中給出的kprobe_example.c。 我使用生成文件(即在同一文檔拍攝代碼) 我得到的編譯錯誤,因爲我的內核版本是4.2,有些領域在結構pt_regs被改變編譯它。因此,我用ip和eflag替換了eipg,並在kprobe_

    1熱度

    1回答

    從kprobe document: echo 'p:myprobe do_sys_open dfd=%ax filename=%dx flags=%cx mode=+4($stack)' > /sys/kernel/debug/tracing/kprobe_events 按我的理解,對X86_64平臺,參數應傳遞到寄存器(請參閱X86_64 syscalls)。所以,我認爲加上探頭應該是這樣的

    1熱度

    1回答

    我想用fedora中的Kprobe計算系統調用malloc。 我知道malloc不是一個系統調用,並且在用戶空間中實現,但是如果可能的話,我想用kprobe來計算malloc。 我必須給Kprobe系統調用的名稱是什麼? 例如,對於do_work: kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("do_fork");

    2熱度

    2回答

    我知道Kprobes可以用來探測任何內核函數。但通過它的文件後,我意識到它主要是一種被動的實體。它只是將一個探測器放在執行序列的中間。 但是如果我想直接調用任何內核函數而不打擾執行順序會怎麼樣。 我該如何做到這一點? 更新: 注:我想調用我的內核模塊內部,而不是從任何用戶空間應用的任何核函數。

    3熱度

    2回答

    我試圖從下面的代碼中刪除堆棧依賴關係。 void myfunction(struct kprobe *p, struct pt_regs *regs) { register void *rregs asm("r1") = regs; register void *rfn asm("lr") = p->ainsn.insn_fn; __asm__ __vola

    4熱度

    1回答

    我試圖將kprobe轉換爲可加載的內核模塊。 我能夠從 內核樹中運行samples/kprobes/文件夾中可用的示例。 如果我們配置的內核(CONFIG_KPROBES)Kprobes的,那麼svc_entry宏將在__und_svc()處理64個字節擴展。 參考: http://lxr.free-electrons.com/source/arch/arm/kernel/entry-armv.S