网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > 其他类别 > 正文

基于IP过滤钩子驱动技术的Windows防火墙的设计

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/06

网学网为广大网友收集整理了,基于IP过滤钩子驱动技术的Windows防火墙的设计,希望对大家有所帮助!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名: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
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 |
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师