簡(jiǎn)易WINDOWS防火墻的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第1頁(yè)
簡(jiǎn)易WINDOWS防火墻的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第2頁(yè)
簡(jiǎn)易WINDOWS防火墻的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第3頁(yè)
簡(jiǎn)易WINDOWS防火墻的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第4頁(yè)
簡(jiǎn)易WINDOWS防火墻的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩54頁(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)介

1、畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)計(jì)( 論論 文文)簡(jiǎn)易簡(jiǎn)易 windowswindows 防火墻的設(shè)計(jì)與實(shí)現(xiàn)防火墻的設(shè)計(jì)與實(shí)現(xiàn)論論文作者姓名:文作者姓名:申申請(qǐng)請(qǐng)學(xué)位學(xué)位專業(yè)專業(yè): :申申請(qǐng)請(qǐng)學(xué)位學(xué)位類別類別: :指指導(dǎo)導(dǎo)教教師師姓姓名名( (職職稱稱) ): :論論文提交日期:文提交日期:簡(jiǎn)易簡(jiǎn)易 windowswindows 防火墻的設(shè)計(jì)與實(shí)現(xiàn)防火墻的設(shè)計(jì)與實(shí)現(xiàn)摘摘 要要當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代,計(jì)算機(jī)與信息處理技術(shù)日漸成熟。隨著internet 和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的蓬勃發(fā)展,網(wǎng)絡(luò)安全問(wèn)題現(xiàn)在已經(jīng)得到普遍重視。網(wǎng)絡(luò)防火墻系統(tǒng)就是網(wǎng)絡(luò)安全技術(shù)在實(shí)際中的應(yīng)用之一。本設(shè)計(jì)實(shí)現(xiàn)的防火墻采用 ip 過(guò)濾鉤子驅(qū)

2、動(dòng)技術(shù),過(guò)濾鉤子驅(qū)動(dòng)是內(nèi)核模式驅(qū)動(dòng),它實(shí)現(xiàn)一個(gè)鉤子過(guò)濾回調(diào)函數(shù),并用系統(tǒng)提供的ip 過(guò)濾驅(qū)動(dòng)注冊(cè)它, ip 過(guò)濾驅(qū)動(dòng)隨后使用這個(gè)過(guò)濾鉤子來(lái)決定如何處理進(jìn)出系統(tǒng)的數(shù)據(jù)包。 本防火墻由以下幾個(gè)模塊組成:過(guò)濾規(guī)則添加模塊,過(guò)濾規(guī)則顯示模塊,過(guò)濾規(guī)則存儲(chǔ)模塊,文件儲(chǔ)存模塊,安裝卸載規(guī)則模塊,ip 封包過(guò)濾驅(qū)動(dòng)功能模塊。用戶只需要通過(guò)主界面菜單和按鈕就可以靈活地操作防火墻,有效地保護(hù) windows 系統(tǒng)的安全。關(guān)鍵詞關(guān)鍵詞:防火墻;過(guò)濾鉤子;過(guò)濾驅(qū)動(dòng);包過(guò)濾the design and implement of simple windows firewallabstractthe current er

3、a is a rapid development of information age. the technologies of computer and information processing become maturity. with the internet and computer network technology to be flourishing, network security that has been widely concerned. firewall system is one of the security technologies that used in

4、 the network. this design has implemented a firewall adopting the ip filter-hook driver technology; its driven through the kernel mode, the filter-hook callback function has been implemented and the filter-hook driver is registered by the ip filter driver which is provided by system. the ip filter d

5、river uses the filter-hook to handle the data packets in and out. the firewall is composed of the following modules: adding filter rules module, display filter rules module, storage filter rules module, storage file module, installation and unloading rules module, ip packet driver module. users can

6、finish the operation by using main menu and button and protect the system effectively.key words: firewall; filter-hook; filter driver; packet filtering目目 錄錄論文總頁(yè)數(shù):21 頁(yè)1 引言.11.1課題背景.11.2本課題研究意義.11.3本課題研究方法.12 防火墻概述.12.1防火墻的定義.12.2防火墻的基本策略.22.3包過(guò)濾防火墻.22.3.1 數(shù)據(jù)包.22.3.2 包過(guò)濾防火墻的工作原理.23 開發(fā)工具.33.1visual c+

7、6.0 .33.2vss.34 防火墻系統(tǒng)構(gòu)成.34.1需求分析.34.2設(shè)計(jì)思路.44.3功能模塊構(gòu)成.44.4功能模塊介紹.44.4.1 過(guò)濾規(guī)則添加刪除功能模塊.44.4.2 過(guò)濾規(guī)則顯示功能模塊.44.4.3 過(guò)濾規(guī)則存儲(chǔ)功能模塊.54.4.4 文件存儲(chǔ)功能模塊.54.4.5 文件載入功能模塊.54.4.6 安裝卸載功能摸塊.54.4.7 ip 封包過(guò)濾驅(qū)動(dòng)功能模塊.55 防火墻設(shè)計(jì).55.1程序關(guān)鍵類.55.1.1 應(yīng)用程序類 cfirewallapp.55.1.2 主框架類 cmainframe.55.1.3 文檔類 cfirewalldoc.65.1.4 視圖類 cfirewal

8、lview.75.1.5 _ruleinfo 類.75.2詳細(xì)設(shè)計(jì).85.2.1 主界面.85.2.2 添加過(guò)濾規(guī)則.85.2.3 刪除過(guò)濾規(guī)則.115.3驅(qū)動(dòng)程序設(shè)計(jì).135.3.1 簡(jiǎn)介.135.3.2 結(jié)構(gòu)圖.145.3.3 該驅(qū)動(dòng)的優(yōu)點(diǎn).145.3.4 本程序的驅(qū)動(dòng)設(shè)計(jì).146 程序測(cè)試.16結(jié) 論.18參考文獻(xiàn).19致 謝.20聲 明.21第 1 頁(yè) 共 21 頁(yè)1 1引言引言1.11.1課題背景課題背景防火墻是一種隔離技術(shù),是一類防范措施的總稱,利用它使得內(nèi)部網(wǎng)絡(luò)與internet 或者其他外部網(wǎng)絡(luò)之間相互隔離,通過(guò)限制網(wǎng)絡(luò)互訪來(lái)保護(hù)內(nèi)部網(wǎng)絡(luò)。防火墻是建立在內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)之間的

9、唯一安全通道,簡(jiǎn)單的可以只用路由器實(shí)現(xiàn),復(fù)雜的可以用主機(jī)甚至一個(gè)子網(wǎng)來(lái)實(shí)現(xiàn),它可以在 ip 層設(shè)置屏障,也可以用應(yīng)用軟件來(lái)阻止外來(lái)攻擊。通過(guò)制定相應(yīng)的安全規(guī)則,可以允許符合條件的數(shù)據(jù)進(jìn)入,同時(shí)將不符合條件的數(shù)據(jù)拒之門外,這樣就可以阻止非法用戶的侵入,保證內(nèi)部網(wǎng)絡(luò)的安全。1.21.2本課題研究意義本課題研究意義隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)給人們帶來(lái)了很多便利,于此同時(shí)網(wǎng)絡(luò)安全的問(wèn)題也伴隨著網(wǎng)絡(luò)技術(shù)的發(fā)展而日趨嚴(yán)重。使用防火墻能很好的提高系統(tǒng)的安全性,減少系統(tǒng)受到網(wǎng)絡(luò)安全方面的威脅。本畢業(yè)設(shè)計(jì)選擇開發(fā)一個(gè) windows 下的防火墻,它能夠?qū)W(wǎng)絡(luò) ip 數(shù)據(jù)包按照用戶的設(shè)置進(jìn)行過(guò)濾。

10、通過(guò)此防火墻的開發(fā)鍛煉了學(xué)生的實(shí)際動(dòng)手能力對(duì)以后的學(xué)習(xí)和工作能力的培養(yǎng)具有重要意義。1.31.3本課題研究方法本課題研究方法本設(shè)計(jì)是使用 vc+ 6.0 的開發(fā)環(huán)境,運(yùn)用 ip 過(guò)濾鉤子驅(qū)動(dòng)技術(shù) 設(shè)計(jì)和實(shí)現(xiàn)的。本次畢業(yè)設(shè)計(jì)應(yīng)首先分析防火墻的相關(guān)功能,結(jié)合本次畢業(yè)設(shè)計(jì)的相關(guān)要求寫出需求分析;其次,綜合運(yùn)用以前所學(xué)的相關(guān)知識(shí),在設(shè)計(jì)中以需求分析為基礎(chǔ),寫出系統(tǒng)開發(fā)計(jì)劃、實(shí)現(xiàn)流程及相關(guān)問(wèn)題的實(shí)現(xiàn)方法;同時(shí),在開發(fā)設(shè)計(jì)與實(shí)現(xiàn)中,要保存好相關(guān)的設(shè)計(jì)文檔。2 2防火墻概述防火墻概述2.12.1防火墻的定義防火墻的定義防火墻是指設(shè)置在不同網(wǎng)絡(luò)(如可信任的企業(yè)內(nèi)部網(wǎng)和不可信的公共網(wǎng))或網(wǎng)絡(luò)安全域之間的一系列部

11、件的組合。它可通過(guò)監(jiān)測(cè)、限制、更改跨越防火墻的數(shù)據(jù)流,盡可能地對(duì)外部屏蔽網(wǎng)絡(luò)內(nèi)部的信息、結(jié)構(gòu)和運(yùn)行狀況,以此來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的安全保護(hù)。在邏輯上,防火墻是一個(gè)分離器,一個(gè)限制器,也是一個(gè)分析器,有效地監(jiān)控了內(nèi)部網(wǎng)和 internet 之間的任何活動(dòng),保證了內(nèi)部網(wǎng)絡(luò)的安全。防火墻是設(shè)置在被保護(hù)網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間的一道屏障,實(shí)現(xiàn)網(wǎng)絡(luò)的安全保護(hù),以防止發(fā)生不可預(yù)測(cè)的、潛在破壞性的侵入。防火墻本身具有較強(qiáng)的抗攻擊能力,它是提供信息安全服務(wù)、實(shí)現(xiàn)網(wǎng)絡(luò)和信息安全的基礎(chǔ)設(shè)施。第 2 頁(yè) 共 21 頁(yè)2.22.2防火墻的基本策略防火墻的基本策略按照美國(guó)國(guó)家計(jì)算機(jī)安全協(xié)會(huì)(ncsa)的建議,制定安全計(jì)劃必須包括服務(wù)訪

12、問(wèn)策略和防火墻設(shè)計(jì)策略。服務(wù)訪問(wèn)策略應(yīng)包括控制用戶對(duì)某些 internet服務(wù)的訪問(wèn)。另外,用戶也需要限制訪問(wèn)的方式,如 ppp 或 slip。在建立服務(wù)訪問(wèn)政策時(shí),需要注意兩個(gè)方式:1、不允許從 internet 上訪問(wèn)到用戶的網(wǎng)絡(luò),但是允許個(gè)別用戶(設(shè)定得到)的網(wǎng)絡(luò)訪問(wèn)有限 internet 站點(diǎn)。但必須進(jìn)行地址偽裝;2、允許有限的從 internet 上訪問(wèn)到公司網(wǎng)絡(luò),如從 internet 上只能訪問(wèn)公司的 www 和 ftp 服務(wù)器。作為防火墻策略,就是定義實(shí)現(xiàn)服務(wù)訪問(wèn)策略的具體規(guī)則。在實(shí)現(xiàn)防火墻策略時(shí),用戶可以采用以下兩個(gè)原則之一:1、除了允許的事件之外,拒絕其它的任何事件。2、除

13、了拒絕的事件之外,允許其它的任何事件。制定的策略是由一條條規(guī)則構(gòu)成的,防火墻的規(guī)則可分為三條鏈:輸入鏈、輸出鏈和轉(zhuǎn)發(fā)鏈。2.32.3包過(guò)濾防火墻包過(guò)濾防火墻.1 數(shù)據(jù)包數(shù)據(jù)包數(shù)據(jù)包是指 ip 網(wǎng)絡(luò)消息。ip 標(biāo)準(zhǔn)定義了在網(wǎng)上兩臺(tái)計(jì)算機(jī)之間發(fā)送的消息的結(jié)構(gòu).結(jié)構(gòu)上,一個(gè)包包含了一個(gè)信息頭和應(yīng)被傳送數(shù)據(jù)的一段消息體。linux 中包含的 ip 防火墻機(jī)制 3 種 ip 消息類型:icmp(internet 控制消息協(xié)議)、udp(用戶數(shù)據(jù)報(bào)協(xié)議)和 tcp(傳輸控制協(xié)議)。所有的 ip 包頭包含了源、目的 ip 地址、ip 協(xié)議消息類型。包頭里根據(jù)協(xié)議類型還包括了不同的字段。icm

14、p 數(shù)據(jù)包包含了一個(gè)類型字段,用來(lái)標(biāo)識(shí)控制或狀態(tài)消息類型。udp 和 tcp包包含了源和目的服務(wù)端口號(hào)。.2 包過(guò)濾防火墻的工作原理包過(guò)濾防火墻的工作原理采用這種技術(shù)的防火墻產(chǎn)品,通過(guò)在網(wǎng)絡(luò)中的適當(dāng)位置對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾,根據(jù)檢查數(shù)據(jù)流中每個(gè)數(shù)據(jù)包的源地址、目的地址、所有的 tcp 端口號(hào)和 tcp鏈路狀態(tài)等要素,然后依據(jù)一組預(yù)定義的規(guī)則,以允許合乎邏輯的數(shù)據(jù)包通過(guò)防火墻進(jìn)入到內(nèi)部網(wǎng)絡(luò),而將不合乎邏輯的數(shù)據(jù)包加以刪除。因?yàn)槁酚善魍ǔ7植荚谟胁煌踩枨蠛桶踩呗缘木W(wǎng)絡(luò)的交界處,因此可以通過(guò)在路由器上使用包過(guò)濾在可能的情況下實(shí)現(xiàn)只允許授權(quán)網(wǎng)絡(luò)的數(shù)據(jù)進(jìn)入。在這些路由器上使用包過(guò)濾師一

15、種比較經(jīng)濟(jì)的在現(xiàn)有路由基礎(chǔ)結(jié)構(gòu)上增加防火墻功能的機(jī)制。顧名思義,包過(guò)濾在路由過(guò)程中對(duì)指定包進(jìn)行過(guò)濾(丟棄) 。對(duì)過(guò)濾的判斷通常基于單個(gè)包的頭部所包含的內(nèi)容(例如源地址,目的地址,協(xié)議,端口等) 。第 3 頁(yè) 共 21 頁(yè)包過(guò)濾防火墻通常在操作系統(tǒng)內(nèi)部實(shí)現(xiàn),并且操作在 ip 網(wǎng)絡(luò)和傳輸協(xié)議層。它在對(duì)基于 ip 包頭信息實(shí)施過(guò)濾后,通過(guò)對(duì)包的路由作決策來(lái)保護(hù)系統(tǒng)。包過(guò)濾防火墻由一組接受或禁止規(guī)則列表組成。這些規(guī)則明確定義了哪個(gè)包將被允許或不允許通過(guò)網(wǎng)絡(luò)接口。防火墻規(guī)則使用在上面描述的包頭字段來(lái)決定是否允許路由一個(gè)包通過(guò),以達(dá)到它的目的,或則無(wú)聲息的將包丟棄掉,或阻止包并向它的發(fā)送機(jī)器返回一個(gè)錯(cuò)誤狀

16、態(tài)。這些規(guī)則是基于特定的網(wǎng)絡(luò)接口卡和主機(jī) ip 地址、網(wǎng)絡(luò)層源和目的 ip 地址、傳輸層 tcp 和 udp 服務(wù)端口、tcp 連接標(biāo)志、網(wǎng)絡(luò)層 icmp 消息類型及這些包是進(jìn)入的還是發(fā)出的。包過(guò)濾功能是所有的防火墻都具備的一個(gè)基本功能,實(shí)際上防火墻要完成的功能從根本上來(lái)說(shuō),就是要按照用戶的要求來(lái)控制網(wǎng)絡(luò)所流通的數(shù)據(jù)包,屏蔽那些無(wú)益的連接。3 3開發(fā)工具開發(fā)工具3.13.1visual c+ 6.06.0visual c+6.0 是微軟98 年推出的產(chǎn)品,它提供了強(qiáng)大的編譯能力以及良好的界面操作性。能夠?qū)indows 9x、windows nt 以及windows 2000 下的c+程序設(shè)計(jì)

17、提供完善的編程環(huán)境。同時(shí)visual c+6.0 對(duì)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)等方面的編程也都提供相應(yīng)的環(huán)境支持。3.23.2vss版本控制是工作組軟件開發(fā)中的重要方面,它能防止意外的文件丟失、允許反追蹤到早期版本、并能對(duì)版本進(jìn)行分支、合并和管理。在軟件開發(fā)和您需要比較兩種版本的文件或找回早期版本的文件時(shí),源代碼的控制是非常有用的。 vss 可以同 visual basic、visual c+、visual j+、visual interdev、visual foxpro 開發(fā)環(huán)境以及 microsoft office 應(yīng)用程序集成在一起,提供了方便易用、面向項(xiàng)目的版本控制功能。visual sources

18、afe 可以處理由各種開發(fā)語(yǔ)言、創(chuàng)作工具或應(yīng)用程序所創(chuàng)建的任何文件類型。在提倡文件再使用的今天,用戶可以同時(shí)在文件和項(xiàng)目級(jí)進(jìn)行工作。visual sourcesafe 面向項(xiàng)目的特性能更有效地管理工作組應(yīng)用程序開發(fā)工作中的日常任務(wù)。4 4防火墻系統(tǒng)構(gòu)成防火墻系統(tǒng)構(gòu)成4.14.1需求分析需求分析該防火墻的主要功能是實(shí)現(xiàn)包過(guò)濾,其他功能主要包括以下幾個(gè)方面。1、能設(shè)置過(guò)濾規(guī)則,包括:ip 地址、子網(wǎng)掩碼、端口號(hào)、協(xié)議。2、能添加刪除規(guī)則。3、能將過(guò)濾規(guī)則保存。第 4 頁(yè) 共 21 頁(yè)4、能對(duì)過(guò)濾規(guī)則進(jìn)行安裝和卸載操作,即:將規(guī)則發(fā)送給 ip 過(guò)濾驅(qū)動(dòng)或從 ip 過(guò)濾驅(qū)動(dòng)中刪除規(guī)則。5、能正確完整的

19、顯示所添加的過(guò)濾規(guī)則。4.24.2設(shè)計(jì)思路設(shè)計(jì)思路根據(jù)程序的需求來(lái)完成功能和模塊化設(shè)計(jì)的思想,總體設(shè)計(jì)思路如下:任何程序都必須具有和用戶進(jìn)行信息交互的功能,因此用戶接口部必須考慮,根據(jù)功能要求,該部分應(yīng)具備:用戶操作的功能菜單、能對(duì)過(guò)濾規(guī)則進(jìn)行設(shè)置、顯示規(guī)則界面、添加規(guī)則界面。這樣程序的功能模塊應(yīng)該有:過(guò)濾規(guī)則添加刪除功能模塊,過(guò)濾規(guī)則顯示功能模塊,過(guò)濾規(guī)則存儲(chǔ)功能模塊,文件儲(chǔ)存功能模塊,安裝卸載規(guī)則功能模塊。4.34.3功能模塊構(gòu)成功能模塊構(gòu)成功能模塊構(gòu)成如圖 1。包過(guò)濾防火墻過(guò)濾規(guī)則添加刪除功能模塊過(guò)濾規(guī)則顯示功能模塊過(guò)濾規(guī)則存儲(chǔ)功能模塊文件儲(chǔ)存功能模塊文件載入功能模塊安裝卸載功能模塊ip

20、 封包過(guò)濾驅(qū)動(dòng)功能模塊圖 1 功能模塊圖4.44.4功能模塊介紹功能模塊介紹.1 過(guò)濾規(guī)則添加刪除功能模塊過(guò)濾規(guī)則添加刪除功能模塊包過(guò)濾防火墻要進(jìn)行數(shù)據(jù)包過(guò)濾就需要按照用戶定義的規(guī)則進(jìn)行包過(guò)濾,該功能模塊就是使用戶能夠添加或刪除過(guò)濾規(guī)則。過(guò)濾規(guī)則主要包括:源 ip 地址、子網(wǎng)掩碼、端口號(hào),目的 ip 地址、子網(wǎng)掩碼、端口號(hào),協(xié)議,以及對(duì)符合該規(guī)則的數(shù)據(jù)包是放行還是阻止進(jìn)行設(shè)置。然后將設(shè)置好的規(guī)則添加到存儲(chǔ)功能模塊。第 5 頁(yè) 共 21 頁(yè).2 過(guò)濾規(guī)則顯示功能模塊過(guò)濾規(guī)則顯示功能模塊該功能用于顯示用戶添加的規(guī)則,能夠?qū)γ恳粭l規(guī)則進(jìn)行刪除、安裝、卸載的操作,使防火

21、墻過(guò)濾規(guī)則能夠很詳細(xì)的顯示給用戶。.3 過(guò)濾規(guī)則存儲(chǔ)功能模塊過(guò)濾規(guī)則存儲(chǔ)功能模塊該功能用于存儲(chǔ)用戶添加的過(guò)濾規(guī)則,接受用戶對(duì)每一條規(guī)則的操作,并按照用戶的操作將規(guī)則進(jìn)行處理。如:安裝規(guī)則,則把用戶選擇的規(guī)則安裝到ip 過(guò)濾驅(qū)動(dòng),ip 接收到此規(guī)則后按照此規(guī)則進(jìn)行數(shù)據(jù)包過(guò)濾。.4 文件存儲(chǔ)功能模塊文件存儲(chǔ)功能模塊使用戶添加的過(guò)濾規(guī)則能夠保存成文件的形式方便儲(chǔ)存,在用戶添加規(guī)則后可以選擇某一條規(guī)則進(jìn)行保存,防火墻會(huì)將該規(guī)則保存為后綴名為.rul 的文件,在下次打開防火墻的時(shí)候可以直接加載該規(guī)則。.5 文件載入功能模塊文件載入功能模塊相對(duì)于文件儲(chǔ)存功能

22、模塊,該功能是實(shí)現(xiàn)用戶可以導(dǎo)入一個(gè)后綴名為.rul的并且保存了有效規(guī)則的文件。.6 安裝卸載功能摸塊安裝卸載功能摸塊防火墻要過(guò)濾數(shù)據(jù)包,就需要將 ip 過(guò)濾驅(qū)動(dòng)按照定義的規(guī)則進(jìn)行過(guò)濾。用戶通過(guò)添加規(guī)則將規(guī)則存儲(chǔ)于防火墻的存儲(chǔ)功能模塊中,想要將規(guī)則發(fā)送給 ip過(guò)濾驅(qū)動(dòng),就需要對(duì)該規(guī)則進(jìn)行安裝。安裝和卸載的功能就是將過(guò)濾規(guī)則傳送給 ip 過(guò)濾驅(qū)動(dòng)或是將已安裝的規(guī)則從過(guò)濾驅(qū)動(dòng)中刪除。.7 ipip 封包過(guò)濾驅(qū)動(dòng)功能模塊封包過(guò)濾驅(qū)動(dòng)功能模塊該功能模塊是整個(gè)包過(guò)濾防火墻的核心部分,ip 封包過(guò)濾驅(qū)動(dòng)能按照用戶定義的規(guī)則對(duì)數(shù)據(jù)包做出阻止或是放行的選擇。5 5防火墻設(shè)計(jì)防火墻

23、設(shè)計(jì)5.15.1程序關(guān)鍵類程序關(guān)鍵類.1 應(yīng)用程序類應(yīng)用程序類 cfirewallapp每個(gè) mfc 應(yīng)用程序都必須包括一個(gè)從 cwinapp 派生的應(yīng)用程序類,在本程序中的應(yīng)用程序類就是 cfirewallapp。應(yīng)用程序類構(gòu)成了應(yīng)用程序的主執(zhí)行線程,它封裝了一個(gè) windows 應(yīng)用程序的初始化、運(yùn)行和終止。.2 主框架類主框架類 cmainframe主框架類 cmainframe 構(gòu)成整個(gè)程序的框架,包括菜單、工具、按鈕等。它構(gòu)成了程序功能的主框架。下面列出了 cmainframe 類中的主要方法和變量。第 6 頁(yè) 共 21 頁(yè)class cmainfra

24、me:public cframewndprotected:bool installed;/規(guī)則安裝標(biāo)志 true-已安裝,false-未安裝protected: bool started;/開始過(guò)濾的標(biāo)志,true-已開始,false-未開始tdriver filterdriver;/定義一個(gè) tdriver 類的變量,tdriver ipfltdrv;/protected:bool addfiltertofw();/addfiltertofw 完成將過(guò)濾鉤子安裝到防火墻的功能。/afx_msg(cmainframe)afx_msg void onappexit();/退出程序afx_msg

25、void onbuttonadd();/添加規(guī)則按鈕afx_msg void onbuttondel();/刪除規(guī)則按鈕afx_msg void onbuttonstart();/開始過(guò)濾按鈕afx_msg void onbuttonstop();/停止過(guò)濾按鈕afx_msg void onbuttoninstall();/安裝規(guī)則afx_msg void onbuttonuninstall();/卸載規(guī)則afx_msg void onmenuaddrule();/添加規(guī)則菜單afx_msg void onmenudelrule();/刪除規(guī)則菜單afx_msg void onmenuinst

26、allrules();安裝菜單afx_msg void onmenuuninstallrules();/卸載規(guī)則菜單afx_msg void onmenustart();/開始過(guò)濾菜單afx_msg void onmenustop();/停止過(guò)濾菜單afx_msg void onmenusaverules();/保存規(guī)則菜單afx_msg void onmenuloadrules();/加載規(guī)則菜單/afx_msg;在主框架類 cmainframe 中定義了應(yīng)用程序的所有基本功能。.3 文檔類文檔類 cfirewalldocmfc 程序中的文檔類是用來(lái)存儲(chǔ)數(shù)據(jù)變量的。在本程序中

27、 cfirewalldoc 主要用來(lái)存儲(chǔ)用戶添加的規(guī)則,當(dāng)用戶添加規(guī)則或刪除規(guī)則時(shí),就要向文檔類第 7 頁(yè) 共 21 頁(yè)cfirewalldoc 中寫入數(shù)據(jù);當(dāng)視圖類 cfirewallview 需要將用戶添加的規(guī)則顯示在規(guī)則列表時(shí),或者將規(guī)則安裝到驅(qū)動(dòng),就需要從文檔類 cfirewalldoc 中讀取數(shù)據(jù)。class cfirewalldoc:public cdocumentpublic:unsigned int nrules;/規(guī)則序數(shù)ruleinfo rulesmax_rules;/最大規(guī)則數(shù)int addrule();/添加規(guī)則void deleterule(unsigned int

28、position);/刪除規(guī)則void resetrules();/重置規(guī)則,即在加載規(guī)則前,需要?jiǎng)h除規(guī)則列表中及存儲(chǔ)在文檔類 cfirewalldoc 中的所有規(guī)則;其中 ruleinfo rulemax_rules是_ruleinfo 結(jié)構(gòu)體的一個(gè)變量,該數(shù)組用來(lái)存儲(chǔ)規(guī)則,_ruleinfo 類詳細(xì)情況見 5.1.5 節(jié)介紹。.4 視圖類視圖類 cfirewallview視圖類一般是用來(lái)顯示信息的,在本程序中,cfirewallview 主要用來(lái)在規(guī)則列表中顯示存儲(chǔ)在文檔類 cfirewalldoc 中的規(guī)則。class cfirewallview:public cform

29、viewpublic:cfirewalldoc* getdocument();/指針指向文檔類,和文檔類cfirewalldoc 關(guān)聯(lián)。/afx_virtual(cfirewallview)public:protected:virtual void oninitialupdate();/在這個(gè)函數(shù)中初始化規(guī)則列表/afx_virtualpublic:void updatelist();/更新規(guī)則列表,和 doc 文檔類保持一致protected:void addruletolist();/將文檔類 cfirewalldoc 中的規(guī)則顯示出來(lái);第 8 頁(yè) 共 21 頁(yè).5 _ru

30、leinfo 類類_ruleinfo 類是用來(lái)定義過(guò)濾規(guī)則的數(shù)據(jù)結(jié)構(gòu)。typedef struct _ruleinfounsigned long sourceip;unsigned long sourcemask;unsigned short sourceport;unsigned long destinationip;unsigned long destinationmask;unsigned short destinationport;unsigned int protocol;int action;ruleinfo,*pruleinfo;5.25.2詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì).1

31、主界面主界面程序主界面如圖 2。圖 2 程序主界面.2 添加過(guò)濾規(guī)則添加過(guò)濾規(guī)則添加過(guò)濾規(guī)則的功能是通過(guò)一個(gè)“添加規(guī)則”對(duì)話框完成,如圖 3。第 9 頁(yè) 共 21 頁(yè) 圖 3 添加規(guī)則對(duì)話框添加規(guī)則功能是將對(duì)話框中的規(guī)則添加到存儲(chǔ)數(shù)據(jù)的文檔中。分兩個(gè)步驟:1、取得添加規(guī)則對(duì)話框中的數(shù)據(jù):int result;updatedata(true);/使控件列表與控件關(guān)聯(lián)result=inet_addr(m_ipsource,&srcip);/從源 ip 地址編輯框獲取源 ip 地址賦給 srcip。result = inet_addr(m_srcmask, &srcm

32、ask);/從源 ip 掩碼編輯框獲取源 ip地址掩碼賦給 srcmask。result=inet_addr(m_ipdestination, &dstip);/從目的 ip 地址編輯框獲取目的 ip 地址賦給 dstip。result = inet_addr(m_dstmask, &dstmask);/從目的 ip 掩碼編輯框獲取目的 ip 掩碼賦給 dstmask。if(m_protocol = tcp)protocol = 6;第 10 頁(yè) 共 21 頁(yè)else if(m_protocol = udp)protocol = 17;else if(m_protocol =

33、icmp)protocol = 1;else if(m_protocol = 所有)protocol = 0;if(m_action = 放行)caction = 0;elsecaction = 1;srcport = m_portsource;/源端口dstport = m_portdestination;/目的端口2、將取得的數(shù)據(jù)添加到文檔類中:bool cfirewalldoc:addrule(unsigned long srcip,unsigned long srcmask,unsigned short srcport, unsigned long dstip,unsigned lon

34、g dstmask,unsigned short dstport,unsigned int protocol,int action)rulesnrules.sourceip = srcip;rulesnrules.sourcemask = srcmask;rulesnrules.sourceport = srcport;rulesnrules.destinationip = dstip;rulesnrules.destinationmask = dstmask;rulesnrules.destinationport = dstport;rulesnrtocol = protoc

35、ol;rulesnrules.action = action;nrules+;return true;實(shí)現(xiàn)添加規(guī)則功能的程序流程圖如圖 4。第 11 頁(yè) 共 21 頁(yè)圖 4 添加規(guī)則流程圖.3 刪除過(guò)濾規(guī)則刪除過(guò)濾規(guī)則刪除規(guī)則時(shí),首先需要確定所要?jiǎng)h除的規(guī)則,再將其從文檔類中刪除,同時(shí)更新視圖類的顯示。當(dāng)正在進(jìn)行過(guò)濾時(shí),則要先停止過(guò)濾,才能刪除規(guī)則。刪除規(guī)則:void cmainframe:onbuttondel()cfirewallview *view = (cfirewallview *)getactiveview();cfirewalldoc *doc = (cfirewa

36、lldoc *)getactivedocument();position pos = view-m_rules.getfirstselecteditemposition();/選中的規(guī)則if(started = true)/如果正在過(guò)濾cstring strtemp;strtemp.format(請(qǐng)先停止過(guò)濾);是開始格式匹配?取得對(duì)話框中的數(shù)據(jù)將數(shù)據(jù)添加到 doc 中彈出添加規(guī)則對(duì)話框結(jié)束輸入正確的規(guī)則否第 12 頁(yè) 共 21 頁(yè)int position;position = view-m_rules.getnextselecteditem(pos);/position 是當(dāng)前選擇的規(guī)則的下

37、一條的序數(shù)實(shí)現(xiàn)刪除規(guī)則功能的程序流程如圖 5。圖 5 刪除規(guī)則流程圖其中調(diào)用 deleterule()的代碼為:cfirewalldoc *doco = (cfirewalldoc *)getactivedocument();/關(guān)聯(lián)文檔類doco-deleterule(position);/調(diào)用 deleterule()函數(shù)刪除規(guī)則view-updatelist();/更新規(guī)則列表的顯示void cfirewalldoc:deleterule(unsigned int position)if(position = nrules)return;if(position != nrules - 1)

38、/如果刪除的規(guī)則不是最后一條,則將它刪除后,后面的規(guī)則要往前移動(dòng)unsigned int i;for(i = position + 1;im_rules.getfirstselecteditemposition();/選中的規(guī)則if(started = true)/如果正在過(guò)濾cstring strtemp;strtemp.format(請(qǐng)先停止過(guò)濾);是開始格式匹配?取得對(duì)話框中的數(shù)據(jù)將數(shù)據(jù)添加到 doc 中彈出添加規(guī)則對(duì)話框結(jié)束輸入正確的規(guī)則否第 12 頁(yè) 共 21 頁(yè)int position;position = view-m_rules.getnextselecteditem(pos)

39、;/position 是當(dāng)前選擇的規(guī)則的下一條的序數(shù)實(shí)現(xiàn)刪除規(guī)則功能的程序流程如圖 5。圖 5 刪除規(guī)則流程圖其中調(diào)用 deleterule()的代碼為:cfirewalldoc *doco = (cfirewalldoc *)getactivedocument();/關(guān)聯(lián)文檔類doco-deleterule(position);/調(diào)用 deleterule()函數(shù)刪除規(guī)則view-updatelist();/更新規(guī)則列表的顯示void cfirewalldoc:deleterule(unsigned int position)if(position = nrules)return;if(po

40、sition != nrules - 1)/如果刪除的規(guī)則不是最后一條,則將它刪除后,后面的規(guī)則要往前移動(dòng)unsigned int i;for(i = position + 1;inrules;i+)否開始取得當(dāng)前選擇的規(guī)則正在過(guò)濾?調(diào)用 deleterule()更新列表顯示結(jié)束停止過(guò)濾是第 13 頁(yè) 共 21 頁(yè)rulesi - 1.sourceip = rulesi.sourceip;rulesi - 1.sourcemask = rulesi.sourcemask;rulesi - 1.sourceport = rulesi.sourceport;rulesi - 1.destinati

41、onip = rulesi.destinationip;rulesi - 1.destinationmask = rulesi.destinationmask;rulesi - 1.destinationport = rulesi.destinationport;rulesi - 1.protocol = tocol;rulesi - 1.action = rulesi.action;nrules-;deleterule()調(diào)用的流程圖如圖 6。圖 6 deleterule()的調(diào)用5.65.6驅(qū)動(dòng)程序設(shè)計(jì)驅(qū)動(dòng)程序設(shè)計(jì).5 簡(jiǎn)介簡(jiǎn)介基于 firewall-h

42、ook driver 的包過(guò)濾驅(qū)動(dòng)程序位于核心態(tài),運(yùn)行效率高,主要用于在 ip 過(guò)濾驅(qū)動(dòng)中攔截所有的網(wǎng)絡(luò)數(shù)據(jù)包,根據(jù)過(guò)濾規(guī)則判別是否接收或發(fā)送數(shù)據(jù)包。同時(shí)處理上層應(yīng)用程序發(fā)送的 irp,接收應(yīng)用程序發(fā)送的過(guò)濾規(guī)則等。安裝過(guò)濾函數(shù)之前,先將過(guò)濾函數(shù)的地址填入刪除開始是最后一條規(guī)則?后面規(guī)則往前移刪除結(jié)束取得當(dāng)前規(guī)則否是第 14 頁(yè) 共 21 頁(yè)ip_set_firewall_hook_info 結(jié)構(gòu)的 firewallptr 指針中,add 設(shè)置為 true,并指定該過(guò)濾函數(shù)優(yōu)先級(jí) priority,然后向 ip 設(shè)備發(fā)送 ioctl ioctl_ip_set_firewall_hook 控制碼

43、,這樣就完成了過(guò)濾函數(shù)的安裝。卸載過(guò)濾函數(shù)的時(shí)候只用把 add 設(shè)置為 false 就行了,其他參數(shù)和安裝時(shí)一樣。每個(gè)過(guò)濾函數(shù)可以設(shè)置一個(gè)優(yōu)先級(jí),系統(tǒng)調(diào)用這些函數(shù)的時(shí)候按照優(yōu)先級(jí)的順序進(jìn)行,直到某個(gè)函數(shù)返回“丟棄包”為止。如果所有的過(guò)濾函數(shù)都返回“允許包” ,那么這個(gè)包才能順利通過(guò)系統(tǒng)??梢园堰@些過(guò)濾函數(shù)想象成一個(gè)過(guò)濾鏈,所有的函數(shù)按照優(yōu)先級(jí)排列,如果一個(gè)函數(shù)返回“丟棄包” ,這條過(guò)濾鏈就斷開了。.6 結(jié)構(gòu)圖結(jié)構(gòu)圖驅(qū)動(dòng)程序結(jié)構(gòu)如圖 7。圖 7 驅(qū)動(dòng)結(jié)構(gòu)圖.7 該驅(qū)動(dòng)的優(yōu)點(diǎn)該驅(qū)動(dòng)的優(yōu)點(diǎn)在 windows 中這不是開發(fā)防火墻的唯一方法,其它的有諸如 ndis 防火墻

44、,tdi 防火墻,winsock 分層防火墻,包過(guò)濾 api 等等。而 filter-hook driver 的優(yōu)點(diǎn)在于:1、 這種方法所擁有的彈性可以使你過(guò)濾所有 ip 層(或以上)的通訊。但不能過(guò)濾更低層的頭部數(shù)據(jù),例如:不能過(guò)濾以太幀數(shù)據(jù)。需要用 ndis 過(guò)濾器來(lái)做。2、 這是一種簡(jiǎn)單的方法。安裝防火墻和執(zhí)行過(guò)濾功能非常簡(jiǎn)單。但包過(guò)濾 api(packet filtering api)更加容易使用,盡管它缺少?gòu)椥?,例如不能處理包?15 頁(yè) 共 21 頁(yè)的內(nèi)容,不能用包過(guò)濾 api 修改內(nèi)容。.8 本程序的驅(qū)動(dòng)設(shè)計(jì)本程序的驅(qū)動(dòng)設(shè)計(jì)本程序驅(qū)動(dòng)的設(shè)計(jì)核心是通過(guò)使用 tdri

45、ver 類向 drvfltip 驅(qū)動(dòng)程序發(fā)送控制代碼(start_ip_hook、stop_ip_hook、add_filter、clear_filter) ,達(dá)到實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾的目的。1、程序初始化時(shí),調(diào)用 loaddriver()加載 drvfltip 驅(qū)動(dòng):cmainframe:oncreate()ipfltdrv.loaddriver(ipfilterdriver,system32driversipfltdrv.sys,null,true);2、當(dāng)用戶單擊“開始過(guò)濾”按鈕時(shí),程序向驅(qū)動(dòng)發(fā)送 start_ip_hook控制代碼,開始過(guò)濾:cmainframe:onbuttonstart(

46、)filterdriver.writeio(start_ip_hook,null,0);3、當(dāng)用戶單擊“停止過(guò)濾”按鈕時(shí),程序向驅(qū)動(dòng)發(fā)送 start_ip_hook控制代碼,停止過(guò)濾:cmainframe:onbuttonstop()filterdriver.writeio(stop_ip_hook,null,0);4、當(dāng)用戶單擊“安裝規(guī)則”按鈕時(shí),程序向驅(qū)動(dòng)發(fā)送 add_filter 控制代碼:cmainframe:onbuttoninstall()addfiltertofw();addfiltertofw()filterdriver.writeio(add_filter, &pf,

47、 sizeof(pf);第 16 頁(yè) 共 21 頁(yè)5、當(dāng)用戶單擊“卸載規(guī)則”按鈕時(shí),程序向驅(qū)動(dòng)發(fā)送 clear_filter 控制代碼:cmainframe:onbuttonuninstall()filterdriver.writeio(clear_filter, null, 0);1212 程序測(cè)試程序測(cè)試計(jì)算機(jī)位于網(wǎng)關(guān)地址為 的局域網(wǎng)內(nèi),本地 ip 地址為:5。通過(guò)局域網(wǎng)連接于外部網(wǎng)絡(luò),可以 ping 通本地網(wǎng)關(guān)地址 和電信 dns服務(wù)器地址 9,如圖 8 和圖 9。圖 8 ping 第 17 頁(yè) 共

48、21 頁(yè)圖 9 ping 9運(yùn)行防火墻,點(diǎn)擊“添加”按鈕進(jìn)行過(guò)濾規(guī)則設(shè)置,如圖 10。源地址: 目的地址 5端口號(hào):0(所有端口)協(xié)議:由于 ping 命令基于 icmp 協(xié)議,所以協(xié)議選擇:icmp行為:丟棄圖 10 添加規(guī)則圖點(diǎn)擊“添加”按鈕將規(guī)則保存到防火墻:如圖 11。第 18 頁(yè) 共 21 頁(yè)圖 11 規(guī)則示圖點(diǎn)擊“安裝”防火墻將過(guò)濾規(guī)則添加到過(guò)濾驅(qū)動(dòng),點(diǎn)擊“開始”防火墻開始按照規(guī)則進(jìn)行數(shù)據(jù)包過(guò)濾,如圖 12。圖 12 開始過(guò)濾圖由圖 12 可以看出原來(lái)本地計(jì)算機(jī)可以和本地網(wǎng)關(guān)(路由器)進(jìn)行 icmp 數(shù)據(jù)包收發(fā),也能和電信 dns

49、 服務(wù)器進(jìn)行數(shù)據(jù)包收發(fā)。而當(dāng)防火墻設(shè)置為過(guò)濾源地址為 、協(xié)議為 icmp 的規(guī)則之后運(yùn)行,本地計(jì)算機(jī)將不能和本地網(wǎng)關(guān)(路由器)進(jìn)行數(shù)據(jù)包收發(fā),ping 命令顯示為“request timed out” 。但是本地計(jì)算機(jī)還能和電信 dns 服務(wù)器 9 進(jìn)行數(shù)據(jù)收發(fā)。結(jié)結(jié) 論論此防火墻操作簡(jiǎn)單,能夠?qū)崿F(xiàn)包過(guò)濾功能。按照用戶設(shè)置的規(guī)則進(jìn)行數(shù)據(jù)包過(guò)濾。能運(yùn)行于 windows 系統(tǒng),屏蔽不安全的站點(diǎn)、對(duì)進(jìn)出的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行過(guò)濾,在一定程度上提高了系統(tǒng)的安全性,可有效的防止計(jì)算機(jī)受到外部網(wǎng)絡(luò)攻擊。此防火墻的開發(fā)是在了解和熟悉了 tcp、udp、icmp 協(xié)議以及 ip

50、封包過(guò)濾驅(qū)動(dòng)的基礎(chǔ)上,運(yùn)用 vc+這一編程語(yǔ)言來(lái)開發(fā)的。相對(duì)于互聯(lián)網(wǎng)上的知名防火墻相比整個(gè)防火墻還不成熟,但它具有操作簡(jiǎn)單明了的特點(diǎn)。在以后的第 19 頁(yè) 共 21 頁(yè)學(xué)習(xí)中隨著自身技術(shù)的提高,我會(huì)進(jìn)一步完善整個(gè)防火墻,使它具有更多的功能對(duì)計(jì)算機(jī)安全起到更好的作用。通過(guò)這次畢業(yè)設(shè)計(jì)的編程,使我對(duì)網(wǎng)絡(luò)編程和防火墻技術(shù)有了新的認(rèn)識(shí),同時(shí)我也對(duì) vc+這一編程語(yǔ)言有了更深的了解。對(duì)以后的學(xué)習(xí)和工作都有很大的幫助。參考文獻(xiàn)參考文獻(xiàn)1 張?jiān)?visual c+網(wǎng)絡(luò)程序設(shè)計(jì)實(shí)例詳解m.北京:人民郵電出版社,2003。2 keith e.strassberg,richard j.gondek.防火墻技術(shù)大全

51、m.北京:機(jī)械工業(yè)出版社,2003。3 朱雁輝.windows 防火墻與網(wǎng)絡(luò)封包截獲技術(shù)m.北京:電子工業(yè)出版社,2002。4 黎連業(yè),張維.防火墻及其應(yīng)用技術(shù)m.北京:清華大學(xué)出版社,2004。5 steven holzner.visual c+ 6.0 輕松進(jìn)階m.北京:電子工業(yè)出版社,2005。6 john e.swanke.visual c+mfc 編程實(shí)例m.北京:機(jī)械工業(yè)出版社,2005。7 張海棠.visual c+ 6.0 編程指南m.北京:航空工業(yè)出版社,2002。第 20 頁(yè) 共 21 頁(yè)致致 謝謝本文是在索望老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受

52、益匪淺,對(duì)順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!在論文完成過(guò)程中,本人還得到了王守兵同學(xué)的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評(píng)審本文的各位專家、老師表示衷心的感謝!作者簡(jiǎn)介:姓 名:劉鐘 性別: 男出生年月:1982 年 3 月 民族: 漢e-mail:第 21 頁(yè) 共 21 頁(yè)聲聲 明明本論文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過(guò)的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使用過(guò)的材料。除非另有說(shuō)明,本文的工作是原始性工作

53、。關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說(shuō)明:本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括:(1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。(2)學(xué)校可以采用影印、縮印或其他復(fù)制方式保存學(xué)位論文。(3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。(4)學(xué)??稍试S學(xué)位論文被查閱或借閱。(5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定) 。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。特此聲明! 第 22 頁(yè) 共 21 頁(yè)are you hungry now?no, i am tired and lazy n

54、ow; if i pursue you i will not catch you, and if i catch you-through your own slowness and clumsiness-i will not kill you, and if i kill you i will not eat you.nicholas had begun to back away, and at the last; words, realizing that they were a signal, he turned andbegan to run, splashing through the

55、 shallow water. ignacio ran after him, much helped by his longer legs, his hair flying behind his dark young face, his square teeth-each white as a bone and as big as nicholass thumbnail-showing like spectators who lined the railings of his lips.dont run, nicholas, dr. island said with the voice of

56、a wave. it only makes him angry that you run. nicholas did not answer, but cut to his left, up the beach and among the trunks of the palms, sprinting all the way because he had no way of knowing ignacio was not right behind him, about to grab him by the neck. when he stopped it was in the thick jung

57、le, among the boles of the hardwoods, where he leaned,.; out of breath, the thumping of his own heart the only.sound in an atmosphere silent and unwaked as earths long, prehuman day. for a time he listened for any sound ignacio might make searching for him; there was none. he drew a deep breath then

58、 and said, well, thats over, expecting dr. island to answer from somewhere; there was only the green hush.the light was still bright and strong and nearly, shadowless, but some interior sense told him the day, was nearly over, and he noticed that such faint shades as he could see stretched long, hor

59、izontal distortions of their objects. he felt no hunger, but he had fasted be- fore and knew on which side of hunger he stood; he was not as strong as he had been only a day past, and bythis time next day he would probably be unable to outrun ignacio. he should, he now realized, have eaten the monke

60、y he had killed; but his stomach revolted at the thought of the raw flesh, and he did not know how he might build a fire, although ignacio seemed to have done so the night before. raw fish, even if he were able to catch a fish, would be as bad, or worse, than raw monkey; he remembered his effort to open a coconut-he

溫馨提示

  • 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)論