




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《Linux及安全》實驗指導(dǎo)書北京電子科技學院信息安全系
實驗一:Linux系統(tǒng)信息編程:(驗證性)實驗?zāi)康膒roc是Linux下的一個虛擬文件系統(tǒng),通過它,用戶可以訪問各種各樣的內(nèi)核數(shù)據(jù)。作為核心態(tài)與用戶態(tài)通訊的主要接口,通過本題目,同學不僅可以理解proc文件系統(tǒng),也會學習到用戶態(tài)與核心態(tài)通信的手段的思想和方法。實驗所涉及知識點C語言,Linux應(yīng)用程序編制,/proc原理實驗環(huán)境Fedora6或者更新版。文本編輯工具,gcc,gdb。內(nèi)核源代碼。實驗內(nèi)容編程一個程序,可以輸出當前系統(tǒng)的內(nèi)核版本號、CPU型號、主機名、系統(tǒng)時間等信息。實驗步驟1、熟悉/proc文件系統(tǒng)2、編寫程序按實驗要求輸出內(nèi)容3、寫實驗報告實驗要求1. 掌握使用gcc2. 使用gdb進行調(diào)試3. 讀取/proc文件系統(tǒng)的內(nèi)容4. 掌握Linux文件操作編程接口5.寫出實驗報告,總結(jié)實驗中碰到的問題及解決方案。考核方式預(yù)習報告占2分,程序源代碼和運行結(jié)果占3分,實驗報告規(guī)范性1分(包括實驗?zāi)康模瑢嶒灢襟E,源代碼,實驗中遇到的各種問題及解決辦法,收獲和啟示),實驗總結(jié)占4分嚴禁拷貝,抄襲,以答辯方式確定,對程序的結(jié)構(gòu),作用不清楚,不能做出相近改動者,每次成績不高于3分。在實驗日之前完成實驗者,可以不交預(yù)習報告.對每次實驗前幾個完成實驗要求的,可以給滿分.沒有按時完成實驗,以后補交實驗程序和實驗報告的,可以酌情扣除1-3分.10分:實驗準備充分,上機準時,操作熟練,能獨立調(diào)試程序,按時完成,報告內(nèi)容齊全,結(jié)果正確。8分:實驗準備良好,上機準時,操作比較熟練,能在教師指導(dǎo)下順利調(diào)試程序,按時完成,報告內(nèi)容比較齊全,結(jié)果正確。6分:實驗準備較好,上機準時,操作比較熟練,基本完成實驗任務(wù),報告內(nèi)容基本齊備,結(jié)果基本正確。0-5分:實驗準備不足,上機不準時,不能完成實驗要求者。
實驗二:系統(tǒng)調(diào)用擴展實驗(綜合性)實驗?zāi)康腖inux系統(tǒng)調(diào)用是Linux內(nèi)核與用戶的分界線,是用戶程序進入內(nèi)核態(tài)的主要渠道,本題目要求學生理解操作系統(tǒng)在處理每個系統(tǒng)調(diào)用的時候如何切入核心態(tài),如何返回數(shù)據(jù)到用戶態(tài)等,通過本題目真正理解操作系統(tǒng)系統(tǒng)內(nèi)核的實質(zhì)。實驗所涉及知識點涉及到的基本知識:Linux下的C編程,Linux內(nèi)核編譯與安裝,Linux應(yīng)用程序編制,Linux系統(tǒng)調(diào)用的概念,C與匯編混合編程。實驗環(huán)境Fedora6或者更新版。文本編輯工具,gcc,gdb。內(nèi)核源代碼。實驗內(nèi)容在2.6.x內(nèi)核中,linux支持兩種系統(tǒng)調(diào)用方式,:int/iret和sysenter/sysexit指令分別對應(yīng)這兩種方式。同學們可以自己根據(jù)自己學習和理解的程度來決定選用哪一個方式進入系統(tǒng)調(diào)用,也可以兩種方式都進行試驗。實驗步驟1、寫出預(yù)習報告。2、下載內(nèi)核源代碼,并解壓到/usr/src目錄。(附G)3、修改內(nèi)核文件:添加系統(tǒng)調(diào)用服務(wù)程序、為新添加的程序配置系統(tǒng)調(diào)用號、配置系統(tǒng)調(diào)用表(附B)4、編譯內(nèi)核(附A)5、安裝內(nèi)核并啟動到新內(nèi)核。6、查看新增加的系統(tǒng)調(diào)用是否已在內(nèi)核中。如果沒有,重復(fù)以上幾步。7、編寫測試程序,調(diào)用新添加的系統(tǒng)調(diào)用。8、總結(jié)實驗中遇到的問題即解決方案,寫出實驗報告。實驗要求1、修改Linux內(nèi)核,增加Linux系統(tǒng)調(diào)用:返回所有進程信息到調(diào)用者,返回所有加載模塊到調(diào)用者(同學也可自行設(shè)計不同功能、難度相當?shù)南到y(tǒng)調(diào)用服務(wù)程序)。2、 編寫調(diào)用庫,用C言語接口封裝新增加的Linux系統(tǒng)調(diào)用,3、 編寫用戶程序,測試新增加的系統(tǒng)調(diào)用功能。4、 寫出實驗報告考核方式預(yù)習報告占2分,程序源代碼和運行結(jié)果占3分,實驗報告規(guī)范性1分(包括實驗?zāi)康?,實驗步驟,源代碼,實驗中遇到的各種問題及解決辦法,收獲和啟示),實驗總結(jié)占4分嚴禁拷貝,抄襲,以答辯方式確定,對程序的結(jié)構(gòu),作用不清楚,不能做出相近改動者,每次成績不高于3分。在實驗日之前完成實驗者,可以不交預(yù)習報告.對每次實驗前幾個完成實驗要求的,可以給滿分.沒有按時完成實驗,以后補交實驗程序和實驗報告的,可以酌情扣除1-3分.10分:實驗準備充分,上機準時,操作熟練,能獨立調(diào)試程序,按時完成,報告內(nèi)容齊全,結(jié)果正確。8分:實驗準備良好,上機準時,操作比較熟練,能在教師指導(dǎo)下順利調(diào)試程序,按時完成,報告內(nèi)容比較齊全,結(jié)果正確。6分:實驗準備較好,上機準時,操作比較熟練,基本完成實驗任務(wù),報告內(nèi)容基本齊備,結(jié)果基本正確。0-5分:實驗準備不足,上機不準時,不能完成實驗要求者。思考題1、系統(tǒng)調(diào)用是否可以動態(tài)調(diào)整,在內(nèi)核運行時指向其他系統(tǒng)調(diào)用服務(wù)程序?九、附錄鑒于大部分同學對Linux操作不是很熟悉,很容易在一些具體的指令如何使用上,花費太多的精力而影響做實驗的進度。所以提借供本部分內(nèi)容,作為該實驗中用到的指令及操作的一個參考,以讓同學投入更多的精力到實驗的核心邏輯上。附A:編譯內(nèi)核配置編譯選項#makeoldconfig編譯與安裝#makebzImage#makemodules#makemodules_install#makeinstall下面簡要介紹關(guān)于以上使用到的指令,關(guān)于編譯內(nèi)核的詳細說明請同學自己參閱linux幫助文件或查閱網(wǎng)上信息。配置編譯選項,用來配置置內(nèi)核功能,通過以下四條指令都可以進行配置:#makeconfig(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)#makemenuconfig(基于文本選單的配置界面,字符終端下推薦使用)#makexconfig(基于圖形窗口模式的配置界面,Xwindow下推薦使用)#makeoldconfig(如果只想在原來內(nèi)核配置的基礎(chǔ)上修改一些小地方)它們的目的是一樣的,那就是生成一個.config文件這三個命令中,makexconfig的界面最為友好,如果可以使用Xwindow,就用這個好了,這個比較方便,也好設(shè)置。但有如果系統(tǒng)的沒有安裝圖形庫,可能不能使用Xwindow,那么就使用makemenuconfig好了。界面雖然比上面一個差點,總比makeconfig的要好多了。選擇相應(yīng)的配置時,有三種選擇,它們分別代表的含義如下:Y--將該功能編譯進內(nèi)核N--不將該功能編譯進內(nèi)核M--將該功能編譯成可以在需要時動態(tài)插入到內(nèi)核中的模塊這些內(nèi)容,同學們進行一下實踐操作,自然就會理解。附B:修改內(nèi)核文件示例添加系統(tǒng)調(diào)用服務(wù)程序kernel/sys.c新添加的系統(tǒng)調(diào)用服務(wù)程序,可以位于內(nèi)核中的任意位置。linux自身的系統(tǒng)調(diào)用服務(wù)程序也是根據(jù)功能,分散在不同的文件中的。以下例子,添加了一個新系統(tǒng)調(diào)用服務(wù)程序“sys_getprocess”在內(nèi)核文件kernel/sys.c中,同學們在實際操作中,可以添加到其他文件中,或單獨寫一個文件(需要修改Makefile)。該系統(tǒng)調(diào)用服務(wù)程序,沒有具體實現(xiàn)內(nèi)容,只是當被調(diào)用時會輸出一行信息,表示自己被調(diào)用過了。 修改系統(tǒng)調(diào)用號include/asm-i386/unistd.h在linux-2.6.20.3內(nèi)核中Linux已經(jīng)定義了320個系統(tǒng)調(diào)用,我們新添加一個,_NR_getprocess,共321個,所以將NR_syscalls修改為321。如下圖箭頭所示,即為修改內(nèi)容。修改系統(tǒng)調(diào)用表arch/i386/kernel/syscall_tabls.S將sys_getprocess系統(tǒng)調(diào)用服務(wù)程序的入口地址,填到系統(tǒng)調(diào)用表的第320項上。 附C:封裝與測試 sys_callX宏 syscall(2)庫附D:測試程序示例本測試程序,直接使用API“systcall”,它接收兩個參數(shù),第一個是系統(tǒng)調(diào)用號,第二個是傳遞給系統(tǒng)調(diào)用的參數(shù),在本例中buf對應(yīng)sys_getprocess中的輸入?yún)?shù)。附E:使用dmesg進行調(diào)試。在調(diào)試內(nèi)核程序輸出調(diào)試信息時,人們經(jīng)常使用到一個和用戶態(tài)printf功能類似的函數(shù)printk。不同在于printk的輸出信息一般不能直接顯示在終端設(shè)備上,而是輸出到一個系統(tǒng)緩沖區(qū)中。如果想查看printk的輸出,可以使用dmesg指令,它會顯示整個printk緩沖的內(nèi)容。附F:使用/proc文件系統(tǒng),查看內(nèi)核符號,以判
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年氣候變化對農(nóng)業(yè)生產(chǎn)的影響評估
- 主題活動一 我是校園志愿者說課稿小學綜合實踐活動蘇少版新疆專用2024三年級上冊-蘇少版(新疆專用2024)
- 2025年門窗項目提案報告模板
- 17.2 勾股定理的逆定理教學設(shè)計-人教版八年級數(shù)學下冊
- 欣賞 管弦樂曲《卡門序曲》說課稿-2025-2026學年小學音樂花城版六年級下冊-花城版
- 2025年浙江特種設(shè)備作業(yè)人員考核試題及答案
- 特種作業(yè)安全生產(chǎn)技術(shù)培訓(xùn)試卷含答案
- 手工制作學科活動
- 形象塑造與禮儀課件
- 完整版老舊小區(qū)改造工程施工組織設(shè)計方案
- 2025中考語文名著《紅巖》重點知識講解及高頻考點梳理+練習(學生版+解析版)
- 房顫患者隨訪管理制度
- 2025屆上海市崇明區(qū)高三上學期期末(一模)生物試題(解析版)
- QGDW11447-202410kV-500kV輸變電設(shè)備交接試驗規(guī)程
- 自愿打掉孩子協(xié)議書
- 造船協(xié)議書范本
- 2024-2025學年部編人教版八年級語文拓展閱讀計劃
- (廣東二模)2025年廣東省高三高考模擬測試(二)歷史試卷(含答案)
- GB 5009.229-2025食品安全國家標準食品中酸價的測定
- 2024-2025學年高中數(shù)學 第三章 函數(shù)的概念與性質(zhì) 3.1.1 函數(shù)的概念教學設(shè)計 新人教A版必修第一冊
- 5分鐘護理小講課
評論
0/150
提交評論