1、“.....图结构应用程序装置驱动程序用户层核心层数据包网络和网络网络结构是基于的。如前所述,捕获包进程的核心必须在内核中运行,它必须能在协议栈处理这些包前获取这些包。在所有协议之前执行了捕获包系统通过网卡驱动直接被调用,并且它需要设备驱动适应些称为驱动规范的程序。换句话说,它需要设备驱动明确的调用网络捕获函数,这个函数控制所有由网络接口接物发送的数据包,并复制个满足过滤器的数据包。当创建个捕获包的程序,这种解决方案是完全不可能的实现,这是因为没有与驱动规范相似的接口,而且也不允许对操作系统和进行修改。所以,将网络数据捕获设置为结构上的协议驱动。因为没有将与底层完全隔离,所以它不自动支持不同类型媒体。因此必须要创建这种方法来支持各种媒体。的数据结构和主要功能函数的数据结构由于的设计是基于的,所以它使用了与相同的数据结构,这里只介绍几个核心的数据结构......”。
2、“.....功能是获得本机的网络接口功能是获取的网络地址和掩码。或功能是循环获取网络数据包。用于将包内容输出到由打开的文件中。用于将过滤规则字符串编译成个内核过滤程序。功能是设置过滤规则。功能是获取数据链路层类型,如以太网等。功能是关闭关联文件操作并回收资源。基于的网络数据捕获程序个较为完整的基于的网络数据包捕获程序包括内核部分和用户分析部分......”。
3、“.....如果在内核没有过滤数据包,在这里还要对数据进行过滤。具体的编程思想和流程如下找到本机所有的网络端口并决定用哪个网络端口进行捕获。可以用个字符串来定义这个设备或者采用用户在命令行直接指定用来提供的端口名来定义。初始化捕获程序。要设置程序对什么设备进行捕获,在捕获多个设备时,可以使用文件句柄区分不同的设备。接下来就要对选定的网卡进行设置,将捕获的包长度,等待时间,网卡工作模式作为命令的参数记录下来。设置过滤器。如果只想捕获特定的传输如包,发往端口的包等等,就必须创建个过滤规则集合编译并且加载到引擎上,这是编写数据包捕获应用程序最主要的步骤。过滤规则集合被保存在个字符串内并且被转换成能被引擎识别的格式才能被编译,然后可以通知引擎应用编译的规则作为捕获和过滤的规则。捕获数据。通过使捕获功能模块进入它的主体循环来实现数据包的捕获......”。
4、“.....要么进入个循环过程捕获指定数量数据包然后退出。解析数据包。捕获到的数据包的头部包含有关的协议信息和有关包的地址信息,这部分的程序就是来分析和解释己经捕获的数据包的协议结构。在捕获到所需的数据后,程序要关闭会话并结束程序。的工作原理示意图如图所示。打开网络设备作为包捕获描述符查找可用的网络设备关闭并返回捕包并处理或判断与网络设备相关的网络号及掩码设置过滤器编译过滤规则为内核过滤码开始命令行中指定要监视的网络设备结束图程序结构下面将分别讨论各个步骤的具体执行过程。获得本地网络驱动器列表基本上所有基于的应用程序所做的第件事情都是获取个已经绑定的网卡列表,然后再对捕获网络数据端口进行设定,般有两种设定方式用户在命令行指定监听的网络接口,这样就要对命令行参数进行判断,本课题不采用此方式。通过引擎找出并设定监听的网络接口。提供了函数......”。
5、“.....其中的每项都包含了个己经绑定的适配器网卡的全部信息,尤其是字段名字和含有名字的描述以及有关驱动器的易读信息。其中和这两项分别包含了相应设备的名称和描述。取得网卡列表后就在屏幕上显示出来,如果网卡没有被发现就显示有关,同其他的函数样有个参数,当有异常情况发生时,这个参数会被填充为个特定的字串。程序功能示意如下用于存储网卡信息用于存储信息,这个用来获得本机网卡列表,最后用释放内存资源获得已安装的网络驱动器的高级信息前面的流程获得己存在网络适配器网卡的静态信息,实际上同样也提供其他的高级信息,特别是这个函数返回的每个结构体都同样包含个结构的列表,内容包含个地址列表,个掩码列表,个广播地址列表和个目的地址列表。通过个函数可以打印结构的的所有字段信息,本课题的程序就采用了对每个所返回的结构循环调用来显示详细的字段信息......”。
6、“.....打开网卡的功能是通过来实现的。它的函数原型定义如下前面制定的监听设备接口制定捕获的最大数目的网络数据包此参数大于即指定接口工作在混杂模式。前面表述过,在正常情况下网卡只接受去往它的包而去往其他主机的数据包则被忽略相反当网卡处于混杂模式时它将接收所有的流经它的数据包这就意味着在共享介质的情况下可以捕获到其它主机的数据包。大部分的包捕获程序都将混杂模式设为默认此参数指定读数据的超时控制,超时以毫秒计算。当在超时时间内网卡上没有数据到来时对网卡的读操作将返回如等函数。还有,如果网卡处于统计模式下还定义了统计的时间间隔。如果该参数为那么意味着没有超时控制,对网卡的读操作在没有数据到来是将永远堵塞。如果为那么对网卡的读操作将立即返回不管有没有数据可读。制定用来存储出错信息的字符串返回值为用于监听的会话......”。
7、“.....比如只想监听服务以捕获用户名和口令信息。或只对或数据流感兴趣。这就要通过设置数据流过滤规则来实现。数据包过滤处理是监听技术中的难点和重点,或最强大的特点之就是数据流的过滤引擎。它提供种高效的方法来只捕获网络数据流的些数据而且常常和系统的捕获机制相集成。过滤数据的函数是和来实现的。来编译个过滤设备,它通过个高层的布尔型变量和字串产生系列的表将网卡描述传递到中通过下面的函数把型的数据转换可读的地址和子网掩码定义的大小,后面的分别是代表个和个结束符输出在初始化程序通过调用和文本设置语句将获取的本机信息传递到界面中显示出来调用获取网卡及本机信息函数输出网卡基本信息通过设置的文本框来接收并显示这些信息。软件测试与结果网卡信息获取下面图和图是预先写的个调试是否能够获得网卡信息和打开网卡捕获数据包的测试程序的截图。运行程序后成功的扫描到本机上的信息......”。
8、“.....图中显示网络接口的描述。其中第个是网号工具,第二个是的本机网卡,提示选择接口号以便打开网卡开始捕获数据包,所以输入的网卡所在选项即输入。图测试截图输入之后从下图中可以看到监听本机网卡然后成功的捕获到数据包并打印出了结果,其中包括了源目的地址,源目的端口号,时间戳和包长。程序运行成功功能实现。图测试截图图中的测试程序中可以选择网卡号来打开指定的网卡,但是在却要直接运行就开始抓包,也就是说选择打开网卡号这步应该初始化就该完成,所以在最终代码中用了这样条指令来让它扫描到的所有可用网络接口中默认跳转到第二块网卡上去。答辩资格检查的时候使用的老师的那台电脑上共扫描到了块可用的网络接口,当时选择的是打开第块接口,前块是电脑上中的虚拟接口。也就是说现在只能通过用我写的小程序来预先测试本机上有多少块可用的网络接口然后再来选择打开哪个,这点上来说不够人性化......”。
9、“.....整合到界面中的程序测试下面图中的是我的最终界面,也就是说是通过其来控制我的整个程序的运作。下图显示的是我运行测试时的截图,功能都已实现,不过存在点点,那就是有时退出程序时会重启电脑,估计是运行反复抓包函数造成了超负荷。也有可能是程序运行过程中抓包程序始终占有着系统资源造成程序其他部分功能的运行搁置,所以打算用线程来试试,看看问题能不能得到解决。另外就是感觉程序在稳定性这个方面只能说是差强人意,很多地方都还有待改进啊。还有就是前面提到的对于头文件路径和的路径的添加,以及头文件还有些全局变量和结构体的声明需要多多注意,避免出现变量的使用超出了声明的范围的情况。程序的测试是个很细致的工作,中提供了单步调试可以具体测试个功能模块的实现与否,比较有用。图测试截图图中我们可以看到很多有用的信息,发现还可以增加些扩展功能,比如通过过滤分类根据协议类型来显示......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。