我的學期項目是一個網絡級防惡意軟件S/W。它的主要組件是Manager和Agent。 代理提供經理:Systemtap腳本到C代碼轉換和編譯
1. CPU usage, Memory usage and B/W usage information
2. Network related Information -
Network Profiling
Function calls from Network Sockets
TCP packets related information
3. Disk Related Information -
I/O monitoring
File Read/Writes
File Attribute changes
4. General Profiling
Function calls
Call Graph
Frequently used system calls
call volume per process
這四個功能的實現爲主題。我們的平臺是Linux。我們發現了一個名爲SystemTap的工具...
http://sourceware.org/systemtap/SystemTap_Beginners_Guide/useful-systemtap-scripts.html
而不是像利用頂部,ifstat,和tcpdump等Linux命令,我們發現這是一個更好的選擇。實際上,所有要完成的操作都是從Agent Java程序調用腳本或可執行文件。
「systemtap」使用的所有腳本都是用systemtap腳本語言編寫的。前端工具(stap)將此腳本轉換爲C代碼,然後將其編譯爲內核文件。
STAP --tmpdir = /家庭/測試/ nettop.stp
通過使用上述命令,我已成功地獲得轉換的C代碼文件。但由於依賴性問題,文件沒有得到編譯。
GCC nettop.c nettop.c:10:29:致命錯誤:runtime_defines.h:沒有這樣的文件或目錄 編譯終止。
GCC -B的/ usr /共享/的systemtap /運行/ -B /usr/src/kernels/3.3.1-3.fc16.x86_64/include/ nettop.c nettop.c:10:29 :致命錯誤:runtime_defines.h:沒有這樣的文件或目錄 編譯終止。
GCC --sysroot =的/ usr/nettop.c nettop.c:10:29:致命錯誤:runtime_defines.h:沒有這樣的文件或目錄 彙編終止。
的SystemTap的運行時頭都使用LINUX /頭格式,這標誌着爲SystemTap的類路徑設置,直到/usr/../../../../include。將所有標題複製到特定文件夾很容易,但編輯它們以反映正確的路徑名稱不是一種可能性。有超過一千個linux頭文件的106個運行時頭文件。
a。 如何讓gcc使用特定的文件夾作爲庫?
b。 這個代理架構有更好的選擇嗎?
PS:希望這個問題不是太模糊。感謝您提前回復。