2009-09-03 50 views
5

我試圖通過ioctl syscalls反向工程設計與內核驅動程序交互的用戶模式共享對象。我有一個頭文件,內核驅動程序的ioctl接口(即ioctl命令號的#defines,以及發送給ioctl的各種數據的結構定義)的定義。向strace添加自定義結構類型

我看到strace有能力去引用傳遞給系統調用的用戶指針,但它顯然無法取消引用傳遞給ioctl的自定義結構。有沒有簡單的方法將我的定義添加到strace中,以便我可以將有意義的數據傳遞給ioctl,而不僅僅是指針地址?

我有strace的源代碼,並且已經成功編譯/安裝它,但是我所有嘗試包含自己的頭文件都沒有效果。

回答

2

strace構建不會自動內省結構併爲它們生成分析器 - 您必須編寫一些代碼來處理結構。

+0

我明白了。僅僅包括我的結構的定義是不夠的。我將此標記爲接受的答案,因爲它解決了這個問題。儘管戴夫的回答是完成我的目標的另一種好方法。 –

2

實現此目的的最簡單方法可能是編寫ioctl()的庫中介片。在Linux here上有一個很好的指導。

您可以檢查應用程序使用的自定義命令編號;併爲這些轉儲出結構。