[发明专利]一种教学用计算机网络数据包抓取方法在审
申请号: | 201410188336.5 | 申请日: | 2014-05-06 |
公开(公告)号: | CN103957214A | 公开(公告)日: | 2014-07-30 |
发明(设计)人: | 何维;田增山;张毅 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/26;H04L12/803;G06F9/44 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 400065 重庆市南*** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 教学 用计 网络 数据包 抓取 方法 | ||
技术领域
本发明属于涉及机网络通信协议分析教学领域,特别涉及一种利用API拦截技术和函数入口指令替换技术实现计算机网络数据包的抓取的方法。
背景技术
众所周知,windows系统是一个不开放源代码、封闭、复杂的操作系统。由于其简单的操作方式、美观的图形界面、稳定的性能、丰富的应用软件,在PC机上成为当之无愧的霸主,甚至在中高端服务器上也占有相当的市场。高校也广泛开设windos操作系统方面的课程,比如:计算机就文化基础、office办公软件、windows程序设计、MFC程序设计、COM程序设计、网络程序设计、网络协议分析等不同层次的课程。由于互联网技术的普及,尤其是近年来移动互联网技术的异军突起,网络通信技术成为学生学习、研究的热点。而在网络通信技术中,网络协议起着十分重要的作用,学习、分析、研究网络协议就是掌握网络通信技术的重要途径。在不开源的windows平台下,分析网络协议,首先要解决的问题就是如何抓取本机的网络通信数据包。目前比较成熟的商业产品有winpacp、wireshark等,这类软件产品稳定可靠,使用方法简单;但缺点是不开源,学生只知其然,而无法知其所以然;只能知晓如何使用软件抓取网络数据包,却无法知晓抓取的内在方法。在windows平台下,要实现网络数据包的抓取,开源的做法有以下两种:
一、采用windows提供的原始套接字(RAWSOCKET),通过把网卡设置为混杂模式,抓取经过本机网卡的IP数据包。这个方法的缺点是只能用于windows2000及以前的平台,后续平台不支持。
二、编写网络过滤驱动(filte driver),通过在套接字接口层与TCP/IP设备对象层之间或网络协议栈和物理网卡之间加入一层过滤驱动来实现网络数据包的拦截,其层次结构如图1所示。这个方法的优点是适用所有的windows平台,通用性非常高;缺点是需要windows驱动编程的知识(NDIS)和驱动开发包(DDK),编写代码对学生知识层次要求过高、代码量大,且稍有不慎,驱动的不稳定即会引起操作系统崩溃。
过滤驱动分为传输层过滤驱动和中间层过滤驱动两种形式。传输层过滤驱动使用NDIS(Network Driver Interface Specification网络驱动接口规范)技术,又称为TDI编程(Transport Driver Interface传输层驱动接口编程)。Windows2000和WindowsXP操作系统中,TCP/IP协议作为系统驱动程序(../system32/TcpIp.sys),在系统启动时加载入系统内存,以TCP/IP设备对象(DeviceObject)的形式供应用程序或其它系统程序调用。传输层过滤驱动程序创建一个或多个设备对象,直接挂接到TCP/IP设备对象之上。挂接成功后,当其它程序使用网络传输功能,调用TCP/IP设备对象时,操作系统首先将该调用映射到TCP/IP设备对象之上所挂接的传输层过滤驱动程序。通过传输层过滤驱动程序,再调用下层的TCP/IP设备对象,从而完成网络访问功能。同样,从TCP/IP层上传至应用程序的网络封包,也要经传输层过滤驱动程序后,再转发至目标应用程序端口。基于此工作原理,可以在传输层过滤驱动程序中实现网络封包截获。
中间层过滤驱动与传输层过滤驱动实现基本原理一致,也是使用NDIS技术。主要差别在于,中间层驱动程序,挂接在协议设备对象(包括TCP/IP设备对象)和网卡设备对象之间。任何进出网卡的网络封包,均必须首先经过中间层驱动程序的处理。从某种意义上分析,中间层驱动程序更象一个虚拟网卡。该虚拟卡封装了物理网卡,对物理网卡的一切网络访问操作,均必须先经虚拟卡处理。
发明内容
本发明的目的是提供一种简洁、实用的教学用计算机网络数据包抓取方法。
本发明的技术方案是:
一种教学用计算机网络数据包抓取方法,包括:
步骤一,计算机进程注入,选择需要抓包的目标进程;
步骤二,获取套接字函数接口SOCKET API的地址并保存;
步骤三,修改进程的所述套接子函数入口的指令;
步骤四,转到自己定义的函数体中,抓取相应网络数据包,恢复函数入口指令,然后调用原API函数,即恢复原始调用;
步骤五,判断是否需要继续抓包:如果需要继续抓包,跳转至步骤三;如果不需要,则跳转至步骤六;
步骤六,进程结束。
优选的,所述步骤一中是利用windows的HOOK技术来进行的计算机进程注入。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410188336.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种提高男性肾功能的功能性饮料
- 下一篇:一种厨余垃圾收集装置