




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 分类号 分类号 TP311 1TP311 1 U U D D C C D10621 408 2007 D10621 408 2007 6041 06041 0 密密 级 公级 公 开开 编编 号 号 20032120432003212043 成成 都都 信信 息息 工工 程程 学学 院院 学学 位位 论论 文文 基于基于 WindowsWindows 封包截获的实现封包截获的实现 论文作者姓名 论文作者姓名 李君诚李君诚 申请学位专业 申请学位专业 计算机科学与技术计算机科学与技术 申请学位类别 申请学位类别 工学学士工学学士 指指导导教教师师姓姓名名 职职称称 杜小丹 教授 杜小丹 教授 论文提交日期 论文提交日期 20072007 年年 0606 月月 1010 日日 2 基于基于 WindowsWindows 封包截获的实现封包截获的实现 摘摘 要要 基于 Windows 封包截获就是对应用程序进行数据包过滤 数据包过滤是在 网络层对数据包进行选择 对向网络上传或从网络下载的数据流进行有选择的 控制过程 要完成数据包过滤 就要首先设置好规则来指定哪些类型的数据包 被允许通过 哪些类型的数据包将会被阻止 如果程序被拒绝访问网络 它将 不能向网络发送任何数据 基于数据包过滤的主要思想就是截获数据包 并且对其进行分析 主要通 过检查数据流中每个数据包的源地址 目的地址 所用的端口号和协议状态等 或它们的组合来决定是否允许该数据包通过 从而达到保护计算机安全的目的 关键词关键词 网络安全 包过滤 控管规则 3 The Implementation of Packet Intercept Based on Windows Abstract The implementation of packet intercept based on windows is mainly a course of data packet filtering through network level to achieve an optional control of data stream updating to or downloading from the net To fulfill this goal there should be firstly established rules to define which kinds of packet are allowed to go If a program is refused to access the network it cannot send any data to the network The main idea of data packet filtering is to intercept data packet And by analyzing data packet especially by checking source address destination address port number and protocol status of every data packet in data stream it is then decided whether or not to let go the data packet which help us achieve the goal of protecting the computer Key words network security packet filtering control rule 4 目目 录录 论文总页数 20 页 1 引言 1 1 1 课题意义 1 1 2 课题综述 1 1 2 1 国内外发展情况 1 1 2 2 网络安全技术介绍 2 2 关键技术 3 2 1 技术介绍 3 2 1 1MFC 介绍 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 5 参考文献 18 声 明 20 第 1 页 共 20 页 1 1 引言引言 1 11 1 课题意义课题意义 随着网络安全问题日益严重 网络安全产品也被人们重视起来 内部的信 息很容易暴露给 Internet 上的其它计算机 一旦受到攻击 计算机便没有能力 来抵抗 保密信息有可能会被盗取 甚至连整台计算机上的数据都有可能被破 坏掉 很容易造成无法晚会的损失 而基于 Windows 封包截获是放置在外部网 络与计算机之间的一个隔离设备 它可以识别并屏蔽非法请求 有效防止跨越 权限的数据访问 基于 Windows 封包截获将局域网的安全性统一到它本身 这 就降低了计算机遭遇外部攻击的风险 目前 网络安全产品可以说是百花齐放 迅猛发展 随着网络向各个领域 的扩展 网络安全的重要性也日益被人们所认知 ICP 提供商担心网站被攻击 因为这种事情发生得太频繁 使用网上交易的用户担心帐户密码被盗 因为窃 取密码的工具比比皆是 软件公司担心源代码泄露 种种现象都表明网络安全 越来越重要 这种事情随时都可能发生在我们自己身上 这也正是网络安全快 速发展的原因 由此可见 基于 Windows 封包截获的意义是非常重大的 在互连网已广泛 普及的现代社会 一台接入互连网的计算机上不安装防火墙是不可想象的 1 21 2 课题综述课题综述 1 2 11 2 1 国内外发展情况国内外发展情况 全球网络安全市场规模及发展趋势 iResearch 统计 2004 年全球网络安全 产品市场规模已经达到了 158 4 亿元 iResearch 预测 未来几年全球网络安 全市场的规模将会由 2001 年的 71 8 亿美元上升到 2007 年的 341 5 亿美元 其中中小企业采购所占的份额将会越来越高 中国网络安全市场规模及预测据 iResearch 统计 2004 年中国网络安全 市场总体收入达 29 6 亿元人民币 而由于中国网络安全政策 企业需求等因素 的影响 中国网络安全市场在未来一到两年内将会出现持续 平稳增长 到 2007 年整个网络安全市场容量将会接近 70 亿元人民币 第 2 页 共 20 页 图 1 1 中国网络安全市场规模及预测 1 2 21 2 2 网络安全技术介绍网络安全技术介绍 数据加密技术是最基本的网络安全技术 被誉为信息安全的核心 最初主 要用于保证数据在存储和传输过程中的保密性 它通过变换和置换等各种方法 将被保护信息置换成密文 然后再进行信息的存储或传输 即使加密信息在存 储或者传输过程为非授权人员所获得 也可以保证这些信息不为其认知 从而 达到保护信息的目的 该方法的保密性直接取决于所采用的密码算法和密钥长 度 包过滤的主要功能是接收被保护网络和外部网络之间的数据包 根据访问 控制策略对数据包进行过滤 只准许授权的数据包通行 应用层网关位于 TCP IP 协议的应用层 实现对用户身份的验证 接收被保 护网络和外部之间的数据流并对之进行检查 在防火墙技术中 应用层网关通 常由代理服务器来实现 通过代理服务器访问 Internet 网络服务的内部网络用 户时 在访问 Internet 之前首先应登录到代理服务器 代理服务器对该用户进 行身份验证检查 决定其是否允许访问 Internet 如果验证通过 用户就可以 登录到 Internet 上的远程服务器 同样 从 Internet 到内部网络的数据流也 由代理服务器代为接收 在检查之后再发送到相应的用户 由于代理服务器工 作于 Internet 应用层 因此对不同的 Internet 服务应有相应的代理服务器 常见的代理服务器有 Web Ftp Telnet 代理等 第 3 页 共 20 页 网络安全扫描技术是为使系统管理员能够及时了解系统中存在的安全漏洞 并采取相应防范措施 从而降低系统的安全风险而发展起来的一种安全技术 利用安全扫描技术 可以对局域网络 Web 站点 主机操作系统 系统服务以 及防火墙系统的安全漏洞进行扫描 系统管理员可以了解在运行的网络系统中 存在的不安全的网络服务 在操作系统上存在的可能导致遭受缓冲区溢出攻击 或者拒绝服务攻击的安全漏洞 还可以检测主机系统中是否被安装了窃听程序 防火墙系统是否存在安全漏洞和配置错误 网络入侵检测技术也叫网络实时监控技术 它通过硬件或软件对网络上的 数据流进行实时检查 并与系统中的入侵特征数据库进行比较 一旦发现有被 攻击的迹象 立刻根据用户所定义的动作做出反应 如切断网络连接 或通知 防火墙系统对访问控制策略进行调整 将入侵的数据包过滤掉等 黑客诱骗技术是近期发展起来的一种网络安全技术 通过一个由网络安全 专家精心设置的特殊系统来引诱黑客 并对黑客进行跟踪和记录 这种黑客诱 骗系统通常也称为蜜罐 Honeypot 系统 其最重要的功能是特殊设置的对于 系统中所有操作的监视和记录 网络安全专家通过精心的伪装使得黑客在进入 到目标系统后 仍不知晓自己所有的行为已处于系统的监视之中 2 2 关键技术关键技术 2 12 1 技术介绍技术介绍 2 1 12 1 1 MFCMFC 介绍介绍 近年来 利用 Internet 进行网际间通讯 在 WWW 浏览 FTP Gopher 这 些 常规服务 以及在网络电话 多媒体会议等这些对实时性要求严格的应用 中成 为研究的热点 而且已经是必需的了 Windows 环境下进行通讯程序设计 的最基 本方法是应用 Windows Sockets 实现进程间的通讯 为此微软提供了 大量基于 Windows Sockets 的通讯 API 如 WinSock API WinInet API 和 ISAPI 并一直 致力于开发更快 更容易的通讯 API 将其和 MFC 集成在一起 以使通讯编程越来 越容易 MFC 是 VC 编程环境最重要的组成部分 它为用户提供了一大批预先定义的 类和成员函数 封装了大量的 Windows API 同时 VC 环境提供了与 MFC 对象 和 代码一起工作的专用工具 AppStudio 源程序编辑器 AppWizard 和 Class Wizard 应用 MFC 可以使 Windows 程序员用较少的时间和精力开发出复杂的 通讯应用程序 2 1 2 数据包数据包 包的构造有点像洋葱 它是由各层连接的协议组成的 在每一层 包都由 第 4 页 共 20 页 包头与包体两部分组成 在包头中存放与这一层相关的协议信息 在包体中存 放包在这一层的数据信息 这些数据也包含了上层的全部信息 在每一层上对 包的处理将从上层获取的全部信息作为包体 然后依本层的协议在加上包头 这种对包的层次性操作 每一层均加上一个包头 一般称为封装 在应用层 包头含有需被传送的数据 当构成下一层 传输层 的包时 传输控制协议 TCP 或用户数据报协议 UDP 从应用层将数据全部取来 然后在加装上本层的包头 当构筑再下一层 网间网层 的包时 IP 协议将上 层的包头与包体全部当做本层的包体 然后再加装上本层的包头 在构筑最后 一层 网络接口层 的包时 以太网或其它网络协议将 IP 层的整个包作为包体 再加上本层的包头 在数据包过滤系统看来 包的最重要信息是各层依次加上 的包头 2 22 2 可行性分析可行性分析 采用 Filter Hook Driver 的新型网络驱动 在 WINDOWS 2000 DDK 中 微软包含了称为 Filter Hook Driver 的新型网 络驱动 可以使用它来过滤所有进出接口的数据 实际上 Filter Hook Driver 并不是网络驱动 它是一种内核模式驱动 Kernel Mode Driver 这种方法可以过滤所有 IP 层 或以上 的通讯 但不能过滤更低层的头部 数据 比如以太帧数据 这是一种简单的方法 安装防火墙和执行过滤功能非常简单 但包过滤 API Packet Filtering API 更加容易使用 尽管它缺少弹性 例如不能处理包 的内容 不能用包过滤 API 修改内容 2 32 3 开发环境及工具开发环境及工具 2 3 12 3 1 开发环境开发环境 硬件环境 需要一个可靠 稳定和安全 并能够满足学习和设计的要求的硬件配置环 境 CPU 800M 以上 内存 128M 以上 其他 安装有网卡 可以接入因特网 软件环境 要求要有很强的持续工作能力 同时要稳定性高 可集成度高的开放式标 准的操作系统 使用了 Windows 2000 2003 第 5 页 共 20 页 2 3 22 3 2 开发工具开发工具 VC 和 Borland C 着重于系统编程 它们开放接口较多 也最为灵活 且 编译出的程序体积较小 所以比较适合做系统工具类软件 它们的缺点就是程 序员需要较多的时间才能掌握这门开发技术 这一点 Borland C Builder 做得比较好 它拥有 Delphi 式的工作环境 语言是 C 并且支持对 Delphi MFC 的直接编译 可以说是采百家之长 神通广大 不过它的缺点就 是它使用的 VCL 类库是为 Delphi 的准备 并不是真正用 C 实现的 相信在以 后的版本中会有所改观 基于 Windows 封包截获软件较多的使用系统接口 且界面比较简单 另外 基于 Windows 封包截获的主要传播渠道为互联网 这就要求体积应尽量的小 安装尽量方便 所以选择 VC 做为开发工具 3 3 系统的设计与实现系统的设计与实现 3 13 1 系统概述系统概述 初步设计进入系统后的界面有监听控制 要监听的端口 IP 进出流量和 开始结束时间及动作以及控管规则的动作 应用程序 方向 一旦启动了封包监视 所有在本机上进入或流出的数据包信息将被捕获下 来 并且分析出它的协议类型 源端口号和目的端口号 还有时间等其他信息 封包监视一边工作 另一边就将监视得到的数据包的各项数据处理 分析 并 且保存起来 如果用户对控管规则设置进行了操作 那么这些设置将被保存 起来 作为以后执行的根据 系统设计工作流程 Winsock 2 SPI 是一个 DLL 程序 它工作在 API 和 DRIVER 之间 为上层 应用程序提供服务 根据这种特性 制定出本防火墙的一级工作流程图 如图 3 1 所示 用户界面 XFILTER EXE 工作模式 控管规则 Windows 2 spi xfilter dll 根据工作模式 控管规则 参数设置 对应用程序连网动作进行控 管 系统 WINSOCK 2 SPI 需要网络服务的应用程序 图 3 1 系统工作一级流程 第 6 页 共 20 页 用户界面 XFILTER EXE 设置工作模式和控管规则 然后 WINSOCK 2 SPI 根据工作模式 控管规则和参数设置 对应用程序连接网络动作进行控管最后 再送给系统 SPI 3 2 3 2 功能概述功能概述 通过以上流程图可以得到 XFILTER 的主体功能为四部分 封包过滤 封包监 视 控管规则设置和管制动作设置功能 3 2 13 2 1 封包过滤功能封包过滤功能 用户状态下在 WINSOCK 层上简单的进行数据包拦截 截获网络封包 然后 进行过滤规则设置 包过滤的规则由应用程序选择 管制动作和进出方向组成 它涵盖对所有出入数据包的处理方法 其主要是依据包头信息如 IP 源地址和目 的地址进行过滤 它将工作模式设置为询问 每当有新的应用程序想连接到网 络首先弹出询问对话框 也就是管制动作设置对话框 Xfilter dll 具体捕获 过滤部分 根据工作模式和控管规则对过往封包进行过滤 Xfilter dll 将通 过的网络封包记录下来并通知 Xfilter exe 界面部分 取走封包 封包过滤 获 取 本 机 IP IP 过 滤 端 口 过 滤 协 议 过 滤 图 3 2 封包过滤 3 2 23 2 2 封包监视窗口功能封包监视窗口功能 提供封包监视界面和提供清空监视列表 停止 开始监控及停止 开始滚动功 能 3 2 33 2 3 控管规则设置窗口功能控管规则设置窗口功能 控管规则设置窗口的功能包括手工添加 修改及删除控管规则 自学习添 加控管规则和控管规则字段属性设置 其中控管规则属性设置字段包括的功能 又包括应用程序选择功能 允许和放行应用程序的管制动作功能和进出方向控 制功能 第 7 页 共 20 页 主程序读写控管规则 设置控管规则类 相关操作 新增或添加 是否符合规则 否 是 图 3 3 控管规则设置 3 33 3 各重要模块的设计与实现各重要模块的设计与实现 3 3 13 3 1 模块接口定义和划分模块接口定义和划分 Windows 消息接口使一种特殊的接口形式 它是基于 Windows 操作系统的 消息机制 这种接口形式适合于应用程序之间 例如在这里要用到的 dll 和 exe 程序之间的操作 应用程序是相对独立的模块 如果这两个模块需要通信 则消息接口就是一种理想的选择 这种接口类似于函数接口 只不过通过操作 系统的消息机制来中转 根据以上对主体功能的分析 可以划分为 4 个模块 分别是封包过滤模块 控管规则模块 管制动作模块和封包监视模块 下面对各个模块进行实现 3 3 23 3 2 FILTER DLLFILTER DLL 封包过滤模块封包过滤模块 对封包进行过滤主要是对过往封包进行截获和利用控管规则设置进行合 法性检查 要完成 XFILTER DLL 的封包截获 首先要对 WINDOWS SOCKETS 应用程序 调用 SPI 进行初始化 在这里我们调用 WSPSTARTUP 函数对 Windows Socket 应 用程序调用初始化 这里主要是根据找出已经被替换的服务提供者路径 并利 用被替换服务提供者的 WSPStartup 封包过滤初始化函数 得到 30 个服务函 数指针 然后将 LPPROCTABL 指针参数 结构中的 30 个服务函数指针都设置 成自己的 这样 相应的函数请求首先会经过我门自己的函数 然后用这些函 数可以做适当的处理 第 8 页 共 20 页 用自定义函数 GETHOOKPROVIDER 获取提供者路径函数 得 到已经被替换的提供者路 径 用 API 函数 LOADLIBRAY 加载 这个提供者 用 GETPROCADDRESS 得到 WSPSTARTUP 的 函数指针 调用被替换的提供者的 WSPSTARTUP 函数得到 LPPROCTABLE 里的函数指针 保存被替换的提供者提供的 30 个 函数指针函数指针 用参数 LPPROCTABLE 结构的服 务函数指针设置自己的函数 图 3 4 封包过滤 WSPSTARTUP 是 WINDOWS SOCKETS 应用程序调用 SPI 的初始化函数 开始 根据 LPPROTOCOLINFO 指针参数 的协议信息找出服务提供者的 ID 然后根据 ID 取出 INSTALL 程序保存的系统 SPI 程序的路径和文件名 再用 LOADLIBRAY 加载系统 SPL 并用 GET PROCADDRESS 获取提供者路径函数 得到系统 SPI 的 WSPSTARTUP 函数指针 然后用 WSPSTARTUP 函数将系统 SPI 的服务指针附值得 到参数 LPPROCTABLE 完成服务的中转 然后保存 SPI 服务函数指针 NEXTPROCTABL LPROCTABLE 最后将 LPPROCTABL 结构中的成员函数指针附值为 自己程序中的服务函数 实现过滤 关键部分代码 int WSPAPI WSPStartup 用自定义函数 GETHOOKPROVIDER 得到已经被替换的提供者路径 然后用 API 函数 LOADLIBRAY 加载这个提供者 接着用 GETPROCADDRESS 得到 第 9 页 共 20 页 WSPSTARTUP 的函数指针 if GetHookProvider lpProtocolInfo sLibraryPath hLibraryHandle LoadLibrary sLibraryPath NULL WSPStartupFunc LPWSPSTARTUP GetProcAddress hLibraryHandle WSPStartup NULL return WSAEPROVIDERFAILEDINIT 调用被替换的提供者的 WSPSTARTUP 函数得到 LPPROCTABLE 里的函数指针 if ErrorCode WSPStartupFunc wVersionRequested lpWSPData lpProtocolInfo upcallTable lpProcTable ERROR SUCCESS return ErrorCode 保存被土换的提供者提供的 30 个函数指针 NextProcTable lpProcTable 用参数 LPPROCTABLE 结构的服务函数指针设置自己的函数 lpProcTable lpWSPSocket WSPSocket lpProcTable lpWSPCloseSocket WSPCloseSocket lpProcTable lpWSPConnect WSPConnect lpProcTable lpWSPAccept WSPAccept lpProcTable lpWSPSend WSPSend lpProcTable lpWSPSendTo WSPSendTo lpProcTable lpWSPRecv WSPRecv lpProcTable lpWSPRecvFrom WSPRecvFrom 要完成合法性检查 根据控管规则检查是否通行的类 CCHECKACL H 和 CCHECKACL CPP 通过检查工作模式和控管规则得到截获服务提供者函数是否通 行的状态 截获服务提供者的 6 个函数分别是 WSPSOCKET 它的功能是调用系统 SPI 服务函数 WSPSOCKET 产生一个 SOCKET 连接并调用 CHECKSOCK 检查应用程序访问 权限 WSPCLOSESOCKET 它的功能是调用 CHECKCLOSESOCKET 关闭 SOCKET 前的 处理 并调用系统 SPI 服务函数 WSPCLOSESOCKET 关闭一个 SOCKET 连接 WSPCONNECT 它饿功能是调用 CHECKCONNECT 检查是否允许连接通过 如果不 第 10 页 共 20 页 能通过 切断连接 如果允许通过 调用 SPI 服务函数 WSPCONNECT 建立一个 SOCKET 连接调用 CHECKCONNECT 检查是否允许连接通过 如果不能通过 切断 连接 如果允许通过 调用 SPI 服务函数 WSPCONNECT 建立一个 SOCKET 连接 调用 CHECKCONNECT 检查是否允许连接通过 如果不能通过 切断连接 如果 允许通过 调用 SPI 服务函数 WSPCONNECT 建立一个 SOCKET 连接 WSPACCEPT 调用系统 SPI 服务函数 WSPACCEPT 接受与外部 SOCKET 连接并调 用 CHECKACCEPT 检查是否通过 如果不能通过 切断连接 WSPSEND 和 WSPSENDTO 调用 CHECKSEND 检查是否允许连接通过 如果不能通过 切断连 接 如果允许通过 调用服务提供者函数 WSPSEND 发送相应数据包 WSPSEND 是面向连接的数据发送函数 例如 TCP 如果是 UDP 则调用 WSPSENDTO 面向无 连接的数据发送函数 WSPRECV 和 WSPRECVFROM 调用系统 SPI 服务函数 WSPRECV 接收相应数据包 并调用 CHECKRECV 检查是否允许连接通过 如果不允许则切断连接 WSPRECV 是面向 连接接收函数 例如 TCP 如果是 UDP 则是 WSPRECVFROM 面向无连接的接收 函数 3 3 33 3 3 封包监视模块封包监视模块 要完成封包监视 首先模块由 DLL 抓取封包 然后由 EXE 界面显示 主要为 XFILTER DLL 编写了一个 CCHECKACL 类对其进行处理 他封装了一 组访问权限进行控制的函数和对服务提供者做管制的函数 其中就有封包处理 函数 他包含获取封包信息的主要函数 SENDSESSIONTOAPP 将传递过来的封包 记录保存在进程变量里 FINDSESSION 在已存在的网络封包数据结构数组中寻 找网络封包记录 GETSESSION 用来得到封包数据 和 FINALLYSESSION 将所 有网络封包数据全部发送到 EXE 中 等 XFILTER EXE 是整个工程的用户界面部分 他需要与 XFILTER DLL 实现对 接 在 XFILTER EXE 中 与 XFILTER dll 直接通信的模块主要有 2 个 其中一 个是主窗口模块 MAINFRAME 他的作用是用来接收 DLL 发送过来的消息 然后 对消息进行相应的处理 要在界面中看到截获的网络封包信息 在 MAINFRAME 中的 ONSESSIONNOTTIFICATION 消息处理函数 用来处理 XFILTER 发送过来的封 包信息 它接收发送过来的封包消息 根据消息从 XFILTER DLL 取出封包数据 并把封包数据发送到监视窗口中显示 如图 3 5 所示 第 11 页 共 20 页 Xfilter dll 捕获封包 CMAINFRAME 发送数据包 封包监视窗口 显示封包 图 3 5 封包监视 封包监视窗口实时显示网络封包 网络封包由 XFILTER DLL 捕获后发送 消息到 CMAINFRAME 主窗口函数 CMAINFRAME 根据消息再从 XFILTER DLL 的缓冲区取走封包数据 然后调用封包监视窗口的函数显示封包 关键代码 LRESULT CMainFrame OnSessionNotification UINT wParam LONG lParam 如果 XFILTER 的控制函数指针为 NULL 则直接返回 if theApp m XfIoControl NULL return XERR SUCCESS XFILTER IO CONTROLioControl ioControl isession wParam ioControl session new SESSION 从 XFILTER DLL 中取出封包数据 theApp m XfIoControl IO CONTROL GET SESSION 如果是空的封包则直接返回 if ioControl session s 0 return XERR SUCCESS 调用封包监视窗口 INSERTONLIST 往列表中增加一条记录 如果还没创建则不显示 CPacketMonitor InsertOneList 第 12 页 共 20 页 CPacketMonitor m pListPacketMonitor ioControl session CPacketMonitor IsMonitor CPacketMonitor IsScroll 释放封包缓冲区 delete ioControl session 3 3 43 3 4 控管规则模块控管规则模块 对控管规则这部分模块 主要完成的两部分功能是询问工作模式和显示控 管规则对话筐 首先调用 XFILTER DLL 捕获封包模块 的函数 XFLOCONTROL 控制 函数 设置 XFILTER DLL 的工作模式为询问 再调用读写控管规则得到控管 规则数据 其中读写控管规则包含读控管规则 保存控管规则文件 增加一条 控管规则记录和删除一条控管规则记录 显示控管规则对话筐调用 SHOWDLG 显示对话筐函数 将读写的控管规 则数据在控管规则对话框中显示出来 如图 3 6 所示 3 3 53 3 5 规则设置模块规则设置模块 对规则设置这部分模块 主要是对应用程序的具体放行和拒绝做选择 完 成这一操作主要用到控管规则文件操作类 CACLFILE 开始通过检查工作模式 为询问 在系统规则中检查是否有系统调用规则如果有则检查这条规则的行为 是否为PASS 没有则检查是否第一次调用 如果控管规则的行为是PASS则返回 PASS结束 如果不是则返回DENY 如果控管规则中系统的调用是第一次 则返 回询问 如果不是 则在上一个找到的控管规则行为判断是否为PASS 如果是 则返回PASS 如果不是则返回DENY 如图3 7 当选择 放行 的时候 任何网络信息 数据包 非法操作将不再询问我们 是否让其通过 所以这一项非特殊情况将不选 当选择 拒绝 的时候 任何有用 包刮破坏的程序将不能通过 有时为了 必要我们不得不在自己机子上做一些检查 测试自己的机子是否有不良程序运行 的时候就不能通过 所以将工作模式设置为固定的 询问 一些个人信息 如检测端口 杀毒 等将会访问是否放行 这里对一些正常的消息我们可以在下面管制动作中选择 放行 然后点确定 对一些非法的我们可以选择拒绝来阻止 第 13 页 共 20 页 询问 管制动作 读写控管规则 增 加 修 改 删除 保存控管规则 调用 SHOWDLG 显示 图 3 6 控管规则 上一个找到的控管规 则行为是否为 PASS 开始 检查工作模式 返回 PASS 结束 返回 PASS 返回 DENY 返回 DENY 该控管规则的行为是 否为 PASS 在控管规则中检查是 否有系统调用规则 no no yes no yes 返回 QUER RY yes 是否第一次调用 no yes 图 3 7 规则设置 第 14 页 共 20 页 4 4 测试测试 4 14 1 关键功能点的测试关键功能点的测试 4 1 14 1 1 数据包监听测试数据包监听测试 预期结果 可以实时监听数据包 并且可以动态记录到日志文件中 并且 在监视窗口中显示出来 每监听到一条就显示一条记录 一直不断更新 测试结果 如图所示 图 4 1 封包监视窗口 当点击清除按钮时 封包监视显示筐中的内容会自动清除 如图 图 4 2 封包监视窗口 当点击停止滚动后 右边的滚动条将会停止自动滚动 4 1 24 1 2 控管规则设置测试控管规则设置测试 预期结果 可以对应用程序 动作和方向进行显示 每次对一个应用程序 进行一次管制动作 在显示栏上就进行一次记录 并且能对管制动作进行添加 第 15 页 共 20 页 修改和删除 下面是测试结果测试结果 按照预期效果显示出了控管规则的设置并成功 实现其功能 图 4 3 控管规则窗口 当单击添加按扭时会弹出 图 4 3 可以选择任意能连接到网络的应用程 序如 IE QQ 等进行控制管理 当选中显示框中的其中一条 再点击修改时 也能弹出 图 4 3 进行控 制管理 选中删除 可以对已经设置好的控管规则返回默认 4 1 34 1 3 管制动作设置测试管制动作设置测试 预期结果 对连接到网络的应用程序进行控制 通过设置对程序实现具体 的操控 并在 图 4 4 中显示出来 测试结果 可以对管制动作进行设置后完成其相应功能 并且在控管规则中的敞口中 显示出来 如图所示 第 16 页 共 20 页 图 4 4 管制动作设置窗口 当选择应用程序浏览按扭会出现如图的结果选择需要控管的应用程序 图 4 5 应用程序选项 当选择到管制动作 显示如图 图 4 6 管制动作选项 当选择到进出方向时 显示如图 第 17 页 共 20 页 图 4 7 进出方向 4 1 44 1 4 测试出错 测试出错 1 1 预期结果 顺利打开主窗口菜单 显示主窗口界面 分析 在这个测试中 多次发现了多加或少加了 break return 语句 循环边界处理不当 返回了错误的值 对变量的定义不当 对 MFC 库函数使用 不当的情况 如图所示 图 4 8 测试出错 1 4 1 54 1 5 测试出错 测试出错 2 2 预期结果 设置 帮助 选项弹出 WINDOWS 默认帮助菜单 在对帮助选项进行测试时出现的错误 在安装了 WINDOWS 相应的帮助菜单 后对其进行连接时出现了错误 并且最终未能解决 图 4 9 测试出错 2 理论上因该弹出 WINDOWS 默认帮助菜单 可是最终无法实现 这也是本设计的一大遗憾 第 18 页 共 20 页 4 24 2 测试总结测试总结 此次测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 澳洲销售工作合同范本
- 2025年合肥海恒教育管理有限公司幼儿园后勤服务岗招聘11名备考练习题库及答案解析
- 2025年风湿免疫科类风湿关节炎早期干预试卷答案及解析
- 2025吉林通化集安市公益性岗位招聘(4)备考练习试题及答案解析
- 2025下半年北京市房山区事业单位招聘72人备考练习题库及答案解析
- 2025天津市盛泰物业管理有限公司招聘备考练习题库及答案解析
- 2025延安市重点产业链紧缺岗位人才需求目录(第二批)考试参考试题及答案解析
- 2025邢台沙河市招聘中小学教师100人备考练习试题及答案解析
- 2025内蒙古科技大学招聘16名教学助理岗位考试参考试题及答案解析
- 中介房屋买卖合同3篇
- 文明乡风培训课件
- 水工结构理论知识培训课件
- 2025云南广南民族文化旅游产业有限公司招聘14人笔试备考试题及答案解析
- 2025年【秋】【初三】【九年级】开学第一课主题班会:奋楫启航征初三 青春执笔赢未来
- 1.2细胞的多样性和统一性(教学课件) 高中生物人教版(2019)必修第一册
- 精神科护工安全知识培训课件
- 2025年新学校军训合同协议书
- 邯郸市永年区实验中学2024-2025学年九年级上学期开学考试道德与法治试卷(含答案)
- 2025年度剧院设施全面维修与日常维护服务协议
- 学易金卷:段考模拟君之2025-2026学年高一化学下学期期末考试原创模拟卷01(考试版)
- 土地要素保障课件教学
评论
0/150
提交评论