目 录
论文总页数:20页
1 引言 1
1.1 课题意义 1
1.2 课题综述 1
1.2.1国内外发展情况 1
1.2.2网络安全技术介绍 2
2 关键技术 3
2.1 技术介绍 3
2.1.1 MFC介绍 3
2.1.2 数据包 3
2.2 可行性分析 4
2.3 开发环境及工具 4
2.3.1 开发环境 4
2.3.2 开发工具 4
3 系统的设计与实现 5
3.1系统概述 5
3.2.功能概述 6
3.2.1封包过滤功能 6
3.2.2封包监视窗口功能 6
3.2.3 控管规则设置窗口功能 6
3.3 各重要模块的设计与实现 7
3.3.1 模块接口定义和划分 7
3.3.2 FILTER.DLL封包过滤模块 7
3.3.3封包监视模块 10
3.3.4控管规则模块 12
3.3.5规则设置模块 12
4测试 14
4.1关键功能点的测试 14
4.1.1 数据包监听测试 14
4.1.2 控管规则设置测试 14
4.1.3 管制动作设置测试 15
4.1.4 测试出错(1) 17
4.1.5 测试出错(2) 17
4.2 测试总结 18
结 论 18
参考文献 18
声 明 20
3.3 各重要模块的设计与实现
3.3.1 模块接口定义和划分
Windows消息接口使一种特殊的接口形式,它是基于Windows操作系统的消息机制。这种接口形式适合于应用程序之间,例如在这里要用到的dll和exe程序之间的操作。应用程序是相对独立的模块,如果这两个模块需要通信,则消息接口就是一种理想的选择。这种接口类似于函数接口,只不过通过操作系统的消息机制来中转。
根据以上对主体功能的分析,可以划分为4个模块,分别是封包过滤模块,控管规则模块,管制动作模块和封包监视模块。下面对各个模块进行实现。
3.3.2 FILTER.DLL封包过滤模块
对封包进行过滤主要是对过往封包进行截获和利用控管规则设置进行合法性检查。
要完成XFILTER.DLL的封包截获,首先要对WINDOWS SOCKETS应用程序调用SPI进行初始化,在这里我们调用WSPSTARTUP函数对Windows Socket应用程序调用初始化,这里主要是根据找出已经被替换的服务提供者路径。并利用被替换服务提供者的WSPStartup(封包过滤初始化函数)得到30个服务函数指针。然后将LPPROCTABL(指针参数)结构中的30个服务函数指针都设置成自己的。这样,相应的函数请求首先会经过我门自己的函数,然后用这些函数可以做适当的处理。
XFILTER.EXE是整个工程的用户界面部分,他需要与XFILTER.DLL实现对接,在XFILTER.EXE中,与XFILTER.dll直接通信的模块主要有2个,其中一个是主窗口模块MAINFRAME,他的作用是用来接收DLL发送过来的消息,然后对消息进行相应的处理。要在界面中看到截获的网络封包信息,在MAINFRAME中的ONSESSIONNOTTIFICATION消息处理函数,用来处理XFILTER发送过来的封包信息,它接收发送过来的封包消息,根据消息从XFILTER.DLL取出封包数据并把封包数据发送到监视窗口中显示,如图3-5所示。这一操作主要用到控管规则文件操作类(CACLFILE),开始通过检查工作模式为询问,在系统规则中检查是否有系统调用规则如果有则检查这条规则的行为是否为PASS,没有则检查是否第一次调用,如果控管规则的行为是PASS则返回PASS结束,如果不是则返回DENY;如果控管规则中系统的调用是第一次,则返回询问,如果不是,则在上一个找到的控管规则行为判断是否为PASS,如果是则返回PASS,如果不是则返回DENY,如图3-7。
当选择“放行”的时候,任何网络信息,数据包,非法操作将不再询问我们是否让其通过。所以这一项非特殊情况将不选。
当选择“拒绝”的时候.任何有用,包刮破坏的程序将不能通过.有时为了必要我们不得不在自己机子上做一些检查,测试自己的机子是否有不良程序运行的时候就不能通过。
所以将工作模式设置为固定的“询问”,一些个人信息,如检测端口,杀毒等将会访问是否放行。这里对一些正常的消息我们可以在下面管制动作中选择放行。然后点确定。对一些非法的我们可以选择拒绝来阻止。
此次测试由于时间仓促,未能完全按照软件工程中的测试步骤进行。
从测试中可以看出,本程序还有很多不完善的地方,有些功能不完全或者无法实现,但基本功能的实现情况还是可以令人满意的。
这样的测试是一个很好的锻炼,我得到了许多启示,就是在编写软件之前和编写过程中要尽量把各个方面都考虑周到,避免像前面所描述的情况的发生,给软件的总体功能打折扣。