网学网为广大网友收集整理了,基于IP过滤钩子驱动技术的Windows防火墙的设计,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
1 防火墙设计 5.1 程序关键类 5.1.1 应用程序类CFireWallAPP 每个MFC应用程序都必须包括一个从CWinApp派生的应用程序类,在本程序中的应用程序类就是CFireWAllApp。应用程序类构成了应用程序的主执行线程,它封装了一个Windows应用程序的初始化、运行和终止。 5.1.2 主框架类CMainFrame 主框架类CMainFrame构成整个程序的框架,包括菜单、工具、按钮等。它构成了程序功能的主框架。下面列出了CmainFrame类中的主要方法和变量。 class CMainFrame:public CFrameWnd { protected: BOOL Installed;//规则安装标志TRUE-已安装,FALSE-未安装 protected: BOOL started;//开始过滤的标志,TRUE-已开始,FALSE-未开始 TDriver filterDriver;//定义一个TDriver类的变量, TDriver ipFltDrv;// protected: BOOL AddFilterToFw();//AddFilterToFw完成将过滤钩子安装到防火墙的功能。 //{{AFX_MSG(CMainFrame) afx_msg void OnAppExit();//退出程序 afx_msg void OnButtonadd();//添加规则按钮 afx_msg void OnButtondel();//删除规则按钮 afx_msg void OnButtonstart();//开始过滤按钮 afx_msg void OnButtonstop();//停止过滤按钮 afx_msg void OnButtonInstall();//安装规则 afx_msg void OnButtonuninstall();//卸载规则 afx_msg void OnMenuAddRule();//添加规则菜单 afx_msg void OnMenuDelRule();//删除规则菜单 afx_msg void OnMenuInstallRules();安装菜单 afx_msg void OnMenuUninstallRules();//卸载规则菜单 afx_msg void OnMenuStart();//开始过滤菜单 afx_msg void OnMenuStop();//停止过滤菜单 afx_msg void OnMenuSaveRules();//保存规则菜单 afx_msg void OnMenuLoadRules();//加载规则菜单 //}}AFX_MSG }; 在主框架类CMainFrame中定义了应用程序的所有基本功能。 5.1.3 文档类CFireWallDoc MFC程序中的文档类是用来存储数据变量的。在本程序中CFireWallDoc主要用来存储用户添加的规则,当用户添加规则或删除规则时,就要向文档类CFireWallDoc中写入数据;当视图类CFireWallView需要将用户添加的规则显示在规则列表时,或者将规则安装到驱动,就需要从文档类CFireWallDoc中读取数据。 class CFireWallDoc:public CDocument { public: unsigned int nRules;//规则序数 RuleInfo rules[MAX_RULES];//最大规则数 int AddRule();//添加规则 void DeleteRule(unsigned int position);//删除规则 void ResetRules();//重置规则,即在加载规则前,需要删除规则列表中及存储在文档类CFireWallDoc中的所有规则 }; 其中RuleInfo rule[MAX_RULES]是_RuleInfo结构体的一个变量,该数组用来存储规则,_RuleInfo类详细情况见5.1.5节介绍。 5.1.4 视图类CFireWallView 视图类一般是用来显示信息的,在本程序中,CFireWallView主要用来在规则列表中显示存储在文档类CFireWallDoc中的规则。 class CFireWallView:public CFormView { public: CFireWallDoc* GetDocument();//指针指向文档类,和文档类CFireWallDoc关联。 //{{AFX_VIRTUAL(CFireWallView) public: protected: virtual void OnInitialUpdate();//在这个函数中初始化规则列表 //}}AFX_VIRTUAL public: void UpdateList();//更新规则列表,和Doc文档类保持一致 protected: void AddRuleToList();//将文档类CFireWallDoc中的规则显示出来 }; 5.1.5 _RuleInfo类 _RuleInfo类是用来定义过滤规则的数据结构。 typedef struct _RuleInfo { unsigned 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.2 详细设计 5.2.1 主界面 程序主界面如图2。
|
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |