用systemtap研究核心
作者****:李先靜
前幾天寫了一篇關於kprobes的blog,kprobes是個好東西,不過要編寫c**,要編譯核心模組,稍嫌有些麻煩。今天我們介紹乙個基於kprobes實現的工具systemtap,systemtap是乙個核心trace工具,用它來研究核心,跟蹤核心執行非常方便。我玩了一下,感覺不錯,這裡做個筆記。
systemtap提供了一種簡單的指令碼語言,使用者使用指令碼語言就可以跟蹤核心執行。systemtap把指令碼語言轉換成c語言,編譯成核心模組,核心模組通過kprobes實現對核心的反射,動態修改函式的行為,增加trace功能,這樣使用者就不必寫c**,也不必編譯核心模組了,用起來方便多了。
其實網上已經有一些文章介紹systemtap,不過一般都針對特定系統而言的,這裡我們盡量不依賴特定系統,而從源**構建核心和工具。
1.編譯核心,讓核心支援設計kprobes和debuginfo。
做如下配置:
kernel hacking
[*] kernel debugging
[*] compile the kernel with debug info
instrumentation support
[*] kprobes (experimental)
編譯/安裝:
make;make modules_install;make install
安裝除錯資訊:
cp vmlinux /lib/modules/2.6.18-prep
用新核心起動。
2.wget
tar zxvf elfutils-0.125.tar.gz
cd elfutils-0.125
./configure ;make;make install
3.wget
tar jxvf systemtap-20070602.tar.bz2
cd systemtap
./configure;make;make install
4.試試
#stap -ve 'probe begin '
#stap -c df -e 'probe syscall.open '
好,可以工作了,下一步開始研究核心吧。
~~end~~
用systemtap研究核心以及相關漏洞
作者 李先靜 前幾天寫了一篇關於kprobes的blog,kprobes是個好東西,不過要編寫c 要編譯核心模組,稍嫌有些麻煩。今天我們介紹乙個基於kprobes實現的工具systemtap,systemtap是乙個核心trace工具,用它來研究核心,跟蹤核心執行非常方便。我玩了一下,感覺不錯,這裡...
用systemtap研究核心以及相關漏洞
作者 李先靜 前幾天寫了一篇關於kprobes的blog,kprobes是個好東西,不過要編寫c 要編譯核心模組,稍嫌有些麻煩。今天我們介紹乙個基於kprobes實現的工具systemtap,systemtap是乙個核心trace工具,用它來研究核心,跟蹤核心執行非常方便。我玩了一下,感覺不錯,這裡...
systemtap除錯核心
systemtap是核心開發者必須要掌握的乙個工具,本文我將簡單介紹一下此工具,後續將會有系列文章介紹systemtap的用法。假如現在有這麼乙個需求 需要獲取正在執行的 linux 系統的資訊,如我想知道系統什麼時候發生系統呼叫,發生的是什麼系統呼叫等這些資訊,有什麼解決方案呢?下面將會介紹sys...