07版-《LINUX及安全》實(shí)驗(yàn)指導(dǎo)書(shū)-新版_第1頁(yè)
07版-《LINUX及安全》實(shí)驗(yàn)指導(dǎo)書(shū)-新版_第2頁(yè)
07版-《LINUX及安全》實(shí)驗(yàn)指導(dǎo)書(shū)-新版_第3頁(yè)
07版-《LINUX及安全》實(shí)驗(yàn)指導(dǎo)書(shū)-新版_第4頁(yè)
07版-《LINUX及安全》實(shí)驗(yàn)指導(dǎo)書(shū)-新版_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《Linux及安全》實(shí)驗(yàn)指導(dǎo)書(shū)北京電子科技學(xué)院信息安全系

實(shí)驗(yàn)一:Linux系統(tǒng)信息編程:(驗(yàn)證性)實(shí)驗(yàn)?zāi)康膒roc是Linux下的一個(gè)虛擬文件系統(tǒng),通過(guò)它,用戶可以訪問(wèn)各種各樣的內(nèi)核數(shù)據(jù)。作為核心態(tài)與用戶態(tài)通訊的主要接口,通過(guò)本題目,同學(xué)不僅可以理解proc文件系統(tǒng),也會(huì)學(xué)習(xí)到用戶態(tài)與核心態(tài)通信的手段的思想和方法。實(shí)驗(yàn)所涉及知識(shí)點(diǎn)C語(yǔ)言,Linux應(yīng)用程序編制,/proc原理實(shí)驗(yàn)環(huán)境Fedora6或者更新版。文本編輯工具,gcc,gdb。內(nèi)核源代碼。實(shí)驗(yàn)內(nèi)容編程一個(gè)程序,可以輸出當(dāng)前系統(tǒng)的內(nèi)核版本號(hào)、CPU型號(hào)、主機(jī)名、系統(tǒng)時(shí)間等信息。實(shí)驗(yàn)步驟1、熟悉/proc文件系統(tǒng)2、編寫程序按實(shí)驗(yàn)要求輸出內(nèi)容3、寫實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)要求1. 掌握使用gcc2. 使用gdb進(jìn)行調(diào)試3. 讀取/proc文件系統(tǒng)的內(nèi)容4. 掌握Linux文件操作編程接口5.寫出實(shí)驗(yàn)報(bào)告,總結(jié)實(shí)驗(yàn)中碰到的問(wèn)題及解決方案??己朔绞筋A(yù)習(xí)報(bào)告占2分,程序源代碼和運(yùn)行結(jié)果占3分,實(shí)驗(yàn)報(bào)告規(guī)范性1分(包括實(shí)驗(yàn)?zāi)康?,?shí)驗(yàn)步驟,源代碼,實(shí)驗(yàn)中遇到的各種問(wèn)題及解決辦法,收獲和啟示),實(shí)驗(yàn)總結(jié)占4分嚴(yán)禁拷貝,抄襲,以答辯方式確定,對(duì)程序的結(jié)構(gòu),作用不清楚,不能做出相近改動(dòng)者,每次成績(jī)不高于3分。在實(shí)驗(yàn)日之前完成實(shí)驗(yàn)者,可以不交預(yù)習(xí)報(bào)告.對(duì)每次實(shí)驗(yàn)前幾個(gè)完成實(shí)驗(yàn)要求的,可以給滿分.沒(méi)有按時(shí)完成實(shí)驗(yàn),以后補(bǔ)交實(shí)驗(yàn)程序和實(shí)驗(yàn)報(bào)告的,可以酌情扣除1-3分.10分:實(shí)驗(yàn)準(zhǔn)備充分,上機(jī)準(zhǔn)時(shí),操作熟練,能獨(dú)立調(diào)試程序,按時(shí)完成,報(bào)告內(nèi)容齊全,結(jié)果正確。8分:實(shí)驗(yàn)準(zhǔn)備良好,上機(jī)準(zhǔn)時(shí),操作比較熟練,能在教師指導(dǎo)下順利調(diào)試程序,按時(shí)完成,報(bào)告內(nèi)容比較齊全,結(jié)果正確。6分:實(shí)驗(yàn)準(zhǔn)備較好,上機(jī)準(zhǔn)時(shí),操作比較熟練,基本完成實(shí)驗(yàn)任務(wù),報(bào)告內(nèi)容基本齊備,結(jié)果基本正確。0-5分:實(shí)驗(yàn)準(zhǔn)備不足,上機(jī)不準(zhǔn)時(shí),不能完成實(shí)驗(yàn)要求者。

實(shí)驗(yàn)二:系統(tǒng)調(diào)用擴(kuò)展實(shí)驗(yàn)(綜合性)實(shí)驗(yàn)?zāi)康腖inux系統(tǒng)調(diào)用是Linux內(nèi)核與用戶的分界線,是用戶程序進(jìn)入內(nèi)核態(tài)的主要渠道,本題目要求學(xué)生理解操作系統(tǒng)在處理每個(gè)系統(tǒng)調(diào)用的時(shí)候如何切入核心態(tài),如何返回?cái)?shù)據(jù)到用戶態(tài)等,通過(guò)本題目真正理解操作系統(tǒng)系統(tǒng)內(nèi)核的實(shí)質(zhì)。實(shí)驗(yàn)所涉及知識(shí)點(diǎn)涉及到的基本知識(shí):Linux下的C編程,Linux內(nèi)核編譯與安裝,Linux應(yīng)用程序編制,Linux系統(tǒng)調(diào)用的概念,C與匯編混合編程。實(shí)驗(yàn)環(huán)境Fedora6或者更新版。文本編輯工具,gcc,gdb。內(nèi)核源代碼。實(shí)驗(yàn)內(nèi)容在2.6.x內(nèi)核中,linux支持兩種系統(tǒng)調(diào)用方式,:int/iret和sysenter/sysexit指令分別對(duì)應(yīng)這兩種方式。同學(xué)們可以自己根據(jù)自己學(xué)習(xí)和理解的程度來(lái)決定選用哪一個(gè)方式進(jìn)入系統(tǒng)調(diào)用,也可以兩種方式都進(jìn)行試驗(yàn)。實(shí)驗(yàn)步驟1、寫出預(yù)習(xí)報(bào)告。2、下載內(nèi)核源代碼,并解壓到/usr/src目錄。(附G)3、修改內(nèi)核文件:添加系統(tǒng)調(diào)用服務(wù)程序、為新添加的程序配置系統(tǒng)調(diào)用號(hào)、配置系統(tǒng)調(diào)用表(附B)4、編譯內(nèi)核(附A)5、安裝內(nèi)核并啟動(dòng)到新內(nèi)核。6、查看新增加的系統(tǒng)調(diào)用是否已在內(nèi)核中。如果沒(méi)有,重復(fù)以上幾步。7、編寫測(cè)試程序,調(diào)用新添加的系統(tǒng)調(diào)用。8、總結(jié)實(shí)驗(yàn)中遇到的問(wèn)題即解決方案,寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)要求1、修改Linux內(nèi)核,增加Linux系統(tǒng)調(diào)用:返回所有進(jìn)程信息到調(diào)用者,返回所有加載模塊到調(diào)用者(同學(xué)也可自行設(shè)計(jì)不同功能、難度相當(dāng)?shù)南到y(tǒng)調(diào)用服務(wù)程序)。2、 編寫調(diào)用庫(kù),用C言語(yǔ)接口封裝新增加的Linux系統(tǒng)調(diào)用,3、 編寫用戶程序,測(cè)試新增加的系統(tǒng)調(diào)用功能。4、 寫出實(shí)驗(yàn)報(bào)告考核方式預(yù)習(xí)報(bào)告占2分,程序源代碼和運(yùn)行結(jié)果占3分,實(shí)驗(yàn)報(bào)告規(guī)范性1分(包括實(shí)驗(yàn)?zāi)康?,?shí)驗(yàn)步驟,源代碼,實(shí)驗(yàn)中遇到的各種問(wèn)題及解決辦法,收獲和啟示),實(shí)驗(yàn)總結(jié)占4分嚴(yán)禁拷貝,抄襲,以答辯方式確定,對(duì)程序的結(jié)構(gòu),作用不清楚,不能做出相近改動(dòng)者,每次成績(jī)不高于3分。在實(shí)驗(yàn)日之前完成實(shí)驗(yàn)者,可以不交預(yù)習(xí)報(bào)告.對(duì)每次實(shí)驗(yàn)前幾個(gè)完成實(shí)驗(yàn)要求的,可以給滿分.沒(méi)有按時(shí)完成實(shí)驗(yàn),以后補(bǔ)交實(shí)驗(yàn)程序和實(shí)驗(yàn)報(bào)告的,可以酌情扣除1-3分.10分:實(shí)驗(yàn)準(zhǔn)備充分,上機(jī)準(zhǔn)時(shí),操作熟練,能獨(dú)立調(diào)試程序,按時(shí)完成,報(bào)告內(nèi)容齊全,結(jié)果正確。8分:實(shí)驗(yàn)準(zhǔn)備良好,上機(jī)準(zhǔn)時(shí),操作比較熟練,能在教師指導(dǎo)下順利調(diào)試程序,按時(shí)完成,報(bào)告內(nèi)容比較齊全,結(jié)果正確。6分:實(shí)驗(yàn)準(zhǔn)備較好,上機(jī)準(zhǔn)時(shí),操作比較熟練,基本完成實(shí)驗(yàn)任務(wù),報(bào)告內(nèi)容基本齊備,結(jié)果基本正確。0-5分:實(shí)驗(yàn)準(zhǔn)備不足,上機(jī)不準(zhǔn)時(shí),不能完成實(shí)驗(yàn)要求者。思考題1、系統(tǒng)調(diào)用是否可以動(dòng)態(tài)調(diào)整,在內(nèi)核運(yùn)行時(shí)指向其他系統(tǒng)調(diào)用服務(wù)程序?九、附錄鑒于大部分同學(xué)對(duì)Linux操作不是很熟悉,很容易在一些具體的指令如何使用上,花費(fèi)太多的精力而影響做實(shí)驗(yàn)的進(jìn)度。所以提借供本部分內(nèi)容,作為該實(shí)驗(yàn)中用到的指令及操作的一個(gè)參考,以讓同學(xué)投入更多的精力到實(shí)驗(yàn)的核心邏輯上。附A:編譯內(nèi)核配置編譯選項(xiàng)#makeoldconfig編譯與安裝#makebzImage#makemodules#makemodules_install#makeinstall下面簡(jiǎn)要介紹關(guān)于以上使用到的指令,關(guān)于編譯內(nèi)核的詳細(xì)說(shuō)明請(qǐng)同學(xué)自己參閱linux幫助文件或查閱網(wǎng)上信息。配置編譯選項(xiàng),用來(lái)配置置內(nèi)核功能,通過(guò)以下四條指令都可以進(jìn)行配置:#makeconfig(基于文本的最為傳統(tǒng)的配置界面,不推薦使用)#makemenuconfig(基于文本選單的配置界面,字符終端下推薦使用)#makexconfig(基于圖形窗口模式的配置界面,Xwindow下推薦使用)#makeoldconfig(如果只想在原來(lái)內(nèi)核配置的基礎(chǔ)上修改一些小地方)它們的目的是一樣的,那就是生成一個(gè).config文件這三個(gè)命令中,makexconfig的界面最為友好,如果可以使用Xwindow,就用這個(gè)好了,這個(gè)比較方便,也好設(shè)置。但有如果系統(tǒng)的沒(méi)有安裝圖形庫(kù),可能不能使用Xwindow,那么就使用makemenuconfig好了。界面雖然比上面一個(gè)差點(diǎn),總比makeconfig的要好多了。選擇相應(yīng)的配置時(shí),有三種選擇,它們分別代表的含義如下:Y--將該功能編譯進(jìn)內(nèi)核N--不將該功能編譯進(jìn)內(nèi)核M--將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊這些內(nèi)容,同學(xué)們進(jìn)行一下實(shí)踐操作,自然就會(huì)理解。附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ù)功能,分散在不同的文件中的。以下例子,添加了一個(gè)新系統(tǒng)調(diào)用服務(wù)程序“sys_getprocess”在內(nèi)核文件kernel/sys.c中,同學(xué)們?cè)趯?shí)際操作中,可以添加到其他文件中,或單獨(dú)寫一個(gè)文件(需要修改Makefile)。該系統(tǒng)調(diào)用服務(wù)程序,沒(méi)有具體實(shí)現(xiàn)內(nèi)容,只是當(dāng)被調(diào)用時(shí)會(huì)輸出一行信息,表示自己被調(diào)用過(guò)了。 修改系統(tǒng)調(diào)用號(hào)include/asm-i386/unistd.h在linux-2.6.20.3內(nèi)核中Linux已經(jīng)定義了320個(gè)系統(tǒng)調(diào)用,我們新添加一個(gè),_NR_getprocess,共321個(gè),所以將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項(xiàng)上。 附C:封裝與測(cè)試 sys_callX宏 syscall(2)庫(kù)附D:測(cè)試程序示例本測(cè)試程序,直接使用API“systcall”,它接收兩個(gè)參數(shù),第一個(gè)是系統(tǒng)調(diào)用號(hào),第二個(gè)是傳遞給系統(tǒng)調(diào)用的參數(shù),在本例中buf對(duì)應(yīng)sys_getprocess中的輸入?yún)?shù)。附E:使用dmesg進(jìn)行調(diào)試。在調(diào)試內(nèi)核程序輸出調(diào)試信息時(shí),人們經(jīng)常使用到一個(gè)和用戶態(tài)printf功能類似的函數(shù)printk。不同在于printk的輸出信息一般不能直接顯示在終端設(shè)備上,而是輸出到一個(gè)系統(tǒng)緩沖區(qū)中。如果想查看printk的輸出,可以使用dmesg指令,它會(huì)顯示整個(gè)printk緩沖的內(nèi)容。附F:使用/proc文件系統(tǒng),查看內(nèi)核符號(hào),以判

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論