E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(10)
主要代码如下:BOOLEANPacketInstallDriver(){ … CHARdriverName[MAX_
WINPCAP
_KEY_CHA
runhook
·
2010-09-05 20:57
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(10)
主要代码如下:BOOLEANPacketInstallDriver(){ … CHARdriverName[MAX_
WINPCAP
_KEY_CHA
runhook
·
2010-09-05 20:57
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(9)
----------------------------------续前节-------------------------------------- //内存清零 ZeroMemory(lpAdapter->SymbolicLink,sizeof(lpAdapter->SymbolicLink)); //看可否直接打开适配器 lpAdapter->hFile=CreateFileA(S
runhook
·
2010-09-05 20:03
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(9)
----------------------------------续前节-------------------------------------- //内存清零 ZeroMemory(lpAdapter->SymbolicLink,sizeof(lpAdapter->SymbolicLink)); //看可否直接打开适配器 lpAdapter->hFile=CreateFileA(S
runhook
·
2010-09-05 20:03
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(8)
1.5.2.1.1 PacketOpenAdapterNPF函数函数PacketOpenAdapterNPF()的作用是打开一个使用NPF设备驱动的适配器。该函数被PacketOpenAdapter()与AddAdapter()作为内部函数调用。函数原型如下:LPADAPTERPacketOpenAdapterNPF(PCHARAdapterNameA);参数AdapterNameA字符串
runhook
·
2010-09-05 19:53
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(8)
1.5.2.1.1 PacketOpenAdapterNPF函数函数PacketOpenAdapterNPF()的作用是打开一个使用NPF设备驱动的适配器。该函数被PacketOpenAdapter()与AddAdapter()作为内部函数调用。函数原型如下:LPADAPTERPacketOpenAdapterNPF(PCHARAdapterNameA);参数AdapterNameA字符串
runhook
·
2010-09-05 19:53
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(7)
1.5 packet.dll对应的函数接口下面对各函数在packet.dll中的实现进行详细分析。1.5.1 关键结构体结构体_ADAPTER描述了一个打开的适配器,该结构体对packet.dll的函数非常重要,不过大部分成员对用户而言都可不用关心,因为该库原本就是为了避免用户处理底层的参数而设计的。该结构体的定义如下:typedefstruct_ADAPTER { HAN
runhook
·
2010-09-05 16:47
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(7)
1.5 packet.dll对应的函数接口下面对各函数在packet.dll中的实现进行详细分析。1.5.1 关键结构体结构体_ADAPTER描述了一个打开的适配器,该结构体对packet.dll的函数非常重要,不过大部分成员对用户而言都可不用关心,因为该库原本就是为了避免用户处理底层的参数而设计的。该结构体的定义如下:typedefstruct_ADAPTER { HAN
runhook
·
2010-09-05 16:47
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(6)
1.4.2.4 pcap_activate函数函数pcap_open_live在最后调用pcap_activate()函数,激活已打开的捕捉实例p。函数pcap_activate()的实现如下:intpcap_activate(pcap_t*p){ intstatus; status=p->activate_op(p); if(status>=0) p->activa
runhook
·
2010-09-05 15:34
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(6)
1.4.2.4 pcap_activate函数函数pcap_open_live在最后调用pcap_activate()函数,激活已打开的捕捉实例p。函数pcap_activate()的实现如下:intpcap_activate(pcap_t*p){ intstatus; status=p->activate_op(p); if(status>=0) p->activa
runhook
·
2010-09-05 15:34
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(5)
1.4.2.3 pcap_activate_win32函数在函数pcap_create()中把p->activate_op操作句柄设为pcap_activate_win32()函数。函数pcap_activate_win32()为激活捕捉实例做各种准备工作。函数的主要代码如下:staticintpcap_activate_win32(pcap_t*p){ NetTypetype;
runhook
·
2010-09-05 15:46
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(5)
1.4.2.3 pcap_activate_win32函数在函数pcap_create()中把p->activate_op操作句柄设为pcap_activate_win32()函数。函数pcap_activate_win32()为激活捕捉实例做各种准备工作。函数的主要代码如下:staticintpcap_activate_win32(pcap_t*p){ NetTypetype;
runhook
·
2010-09-05 15:46
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(4)
1.4.2 pcap_open_live函数函数首先创建pcap_t结构体,设置捕获数据包的长度,设置网卡为混杂模式,设置读取超时时间,最后激活该已打开的捕捉实例。函数的重要代码如下:pcap_t*pcap_open_live(constchar*source,intsnaplen,intpromisc,intto_ms,char*errbuf){ pcap_t*p; intst
runhook
·
2010-09-05 14:28
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(4)
1.4.2 pcap_open_live函数函数首先创建pcap_t结构体,设置捕获数据包的长度,设置网卡为混杂模式,设置读取超时时间,最后激活该已打开的捕捉实例。函数的重要代码如下:pcap_t*pcap_open_live(constchar*source,intsnaplen,intpromisc,intto_ms,char*errbuf){ pcap_t*p; intst
runhook
·
2010-09-05 14:28
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(3)
1.4 wpcap.dll中相应函数接口的实现下面对各函数在wpcap.dll中的实现进行详细分析。1.4.1 pcap_open函数函数首先确认参数source的长度不超过PCAP_BUF_SIZE,然后调用pcap_parsesrcstr()函数分析源的种类,是文件,本地主机接口还是远程主机接口,并依据不同的源类型作不同的处理。如果是文件类型,直接调用pcap_open_o
runhook
·
2010-09-05 14:01
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(3)
1.4 wpcap.dll中相应函数接口的实现下面对各函数在wpcap.dll中的实现进行详细分析。1.4.1 pcap_open函数函数首先确认参数source的长度不超过PCAP_BUF_SIZE,然后调用pcap_parsesrcstr()函数分析源的种类,是文件,本地主机接口还是远程主机接口,并依据不同的源类型作不同的处理。如果是文件类型,直接调用pcap_open_o
runhook
·
2010-09-05 14:01
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(2)
1.2 关键数据结构pcap结构体结构体pcap是一个已打开捕捉实例的描述符。该结构体对用户来说是不透明的,它通过wpcap.dll提供的函数,维护它的内容。此处只说明WIN32平台下使用的成员。typedefstructpcappcap_t;structpcap{ ADAPTER*adapter; LPPACKETPacket; intnonblock; intsnap
runhook
·
2010-09-05 13:38
职场
休闲
winpcap
深度剖析
WinPcap
之(八)――打开与关闭适配器(1)
1.1 wpcap.dll导出的相应函数接口库wpcap.dll为打开与关闭适配器,提供了下列函数:pcap_t*pcap_open(constchar*source,intsnaplen,intflags,intread_timeout,structpcap_rmtauth*auth,char*errbuf); pcap_t*pcap_open_dead(intlinktype,in
runhook
·
2010-09-05 10:31
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(9)
1.4.3.1PacketUpdateAdInfo函数 函数PacketUpdateAdInfo()在一个全局链表g_AdaptersInfoList中更新一个适配器的信息。其原型如下:BOOLEANPacketUpdateAdInfo(PCHARAdapterName);参数AdapterName是所需更新信息的适配器名称。 如果函数成功返回TRUE,一个false值意味着适配器不可用或没有被连
runhook
·
2010-09-05 10:21
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(8)
1.4.3 PacketGetNetInfoEx函数函数PacketGetNetInfoEx获得一个适配器的所有地址信息,函数使用结构体npf_if_addr返回与一个适配器相关联的地址信息。函数原型如下:BOOLEANPacketGetNetInfoEx(PCHARAdapterName,npf_if_addr*buffer,PLONGNEntries)参数AdapterName字符串是适配器
runhook
·
2010-09-05 10:23
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(7)
1.4.2.3 PacketAddAdapterNPF函数函数PacketAddAdapterNPF()向适配器链表g_AdaptersInfoList中添加一个节点。参数AdName是要添加的链表节点的适配器名称。如果函数成功则返回非0值。其主要代码如下所示:staticBOOLEANPacketAddAdapterNPF(PCHARAdName,UINTflags){ LONG
runhook
·
2010-09-04 20:29
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(6)
1.4.2.1 PacketPopulateAdaptersInfoList函数函数PacketPopulateAdaptersInfoList()创建适配器的链表g_AdaptersInfoList。该函数先释放掉g_AdaptersInfoList中旧的内容,然后调用PacketGetAdaptersNPF()函数用新的信息填充该链表。其主要代码如下所示:voidPacketPopula
runhook
·
2010-09-04 19:35
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(5)
1.4.2 PacketGetAdapterNames函数函数PacketGetAdapterNames获取可用网络适配器的一个列表与它们的描述。参数pStr是用户分配的字符串,用来存储适配器的名称。参数BufferSize是pStr所指缓冲区的长度。如果函数失败,该变量返回存储适配器列表所需的字节数。如果函数成功,返回非0值。如果返回值为0,BufferSize返回存储适配器列表所需
runhook
·
2010-09-04 19:21
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(4)
1.4 packet.dll对应的函数接口1.4.1 关键结构体_ADAPTER_INFO结构体_ADAPTER_INFO包含了系统上所安装适配器的可理解信息,包含用户所需的所有附加信息。该结构体的定义如下:typedefstruct_ADAPTER_INFO { struct_ADAPTER_INFO*Next; //指向链表中的下一个节点 CHAR
runhook
·
2010-09-04 19:18
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(3)
1.3.3 pcap_freealldevs函数函数pcap_freealldevs()释放由函数pcap_findalldevs_ex()或pcap_findalldevs()返回的网络接口链表,函数参数alldevs为所需释放链表。函数的主要代码如下:voidpcap_freealldevs(pcap_if_t*alldevs){ pcap_if_t*curdev,*nextd
runhook
·
2010-09-04 17:39
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(2)
1.3 wpcap.dll中相应函数接口的实现1.3.1 pcap_findalldevs函数 wpcap\libpcap\fad-win32.c(219):218-327参数alldevsp返回所找到的适配器列表,参数errbuf返回错误信息。 intpcap_findalldevs(pcap_if_t**alldevsp,char*errbuf){ pcap_if_t*de
runhook
·
2010-09-04 17:53
职场
休闲
winpcap
深度剖析
WinPcap
之(七)――获得与释放网络适配器设备列表(1)
通常,编写基于
WinPcap
应用程序的第一件事情,就是获得已连接的网络适配器设备列表。同时在程序结束时确保释放获取的设备列表。
runhook
·
2010-09-04 16:19
职场
休闲
winpcap
深度剖析
WinPcap
之(六)――驱动程序的初始化与清除(4)
1.4 NPF的DriverUnload函数驱动程序的DriverUnload例程主要负责删除设备与取消符号连接,同时也可释放在DriverEntry中所分配的资源。当数据包捕获驱动程序卸载时,操作系统调用NPF_Unload函数。调用IoDeleteSymbolicLink函数删除符号连接,调用IoDeleteDevice函数删除设备对象,并调用NdisDeregisterProto
runhook
·
2010-09-04 16:01
职场
休闲
winpcap
深度剖析
WinPcap
之(六)――驱动程序的初始化与清除(3)
1.3.2 getTcpBindings函数函数getTcpBindings返回绑定到TCP/IP的MAC。函数原型如下:PKEY_VALUE_PARTIAL_INFORMATIONgetTcpBindings(VOID);如果getAdaptersList函数失败,NPF通过该函数试图获取TCP/IP的绑定。函数通过对注册表项HKEY_LOCAL_MACHINE\SYSTEM\Cur
runhook
·
2010-09-04 16:31
职场
休闲
winpcap
深度剖析
WinPcap
之(六)――驱动程序的初始化与清除(2)
1.3 DriverEntry函数的具体实现NPF的DriverEntry注册所有驱动程序的I/O回调函数、创建设备、在NDIS内把NPF定注册为一个协议驱动程序。NPF的DriverEntry函数的主要代码如下:packetNtx\driver\packet.c 91~282NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNI
runhook
·
2010-09-04 15:28
职场
休闲
驱动程序
wipcap
深度剖析
WinPcap
之(六)――驱动程序的初始化与清除(1)
驱动程序的初始化主要由函数DriverEntry完成,卸载主要由函数DriverUnload完成。下面主要分析驱动程序的初始化与清除过程,以及相关的基础知识。图5-1函数调用关系图1.1结构体_NDIS_PROTOCOL_CHARACTERISTICS结构体_NDIS_PROTOCOL_CHARACTERISTICS的定义如下:typedefstruct_NDIS_PROTOCOL_CHARACT
runhook
·
2010-09-04 15:40
职场
休闲
winpcap
驱动程序
深度剖析
WinPcap
之(五)――在Visual studio 2005中使用
WinPcap
库进行程序开发(2)
1.6.使用
WinPcap
库进行程序开发下面详细介绍在MicrosoftVisualStudio2005下如何使用
WinPcap
库来进行开发,实例程序为打开本机的设备列表,并显示出来。
runhook
·
2010-09-03 20:35
程序
深度
Visual
Studio
winpcap
深度剖析
WinPcap
之(五)――在Visual studio 2005中使用
WinPcap
库进行程序开发(2)
1.6.使用
WinPcap
库进行程序开发下面详细介绍在MicrosoftVisualStudio2005下如何使用
WinPcap
库来进行开发,实例程序为打开本机的设备列表,并显示出来。
runhook
·
2010-09-03 20:35
程序
深度
Visual
Studio
winpcap
深度剖析
WinPcap
之(五)――编译与使用
WinPcap
(1)
本节主要说明了在各种Win32平台上如何编译
WinPcap
[1],包括内核层与用户层两部分。所有的源代码可从http://www.
winpcap
.org网站获取。
runhook
·
2010-09-03 20:43
剖析
编译
深度
休闲
winpcap
深度剖析
WinPcap
之(五)――编译与使用
WinPcap
(1)
本节主要说明了在各种Win32平台上如何编译
WinPcap
[1],包括内核层与用户层两部分。所有的源代码可从http://www.
winpcap
.org网站获取。
runhook
·
2010-09-03 20:43
剖析
编译
深度
休闲
winpcap
深度剖析
WinPcap
之(四)――
WinPcap
的体系架构(2)
1.3
WinPcap
驱动内部说明
WinPcap
的结构如图2-4所示,NPF是
WinPcap
的组件,用来处理网络上传输的数据包,并对用户层导出数据包捕获、发送与分析的能力。
runhook
·
2010-09-03 17:16
架构
剖析
深度
休闲
winpcap
深度剖析
WinPcap
之(四)――
WinPcap
的体系架构(2)
1.3
WinPcap
驱动内部说明
WinPcap
的结构如图2-4所示,NPF是
WinPcap
的组件,用来处理网络上传输的数据包,并对用户层导出数据包捕获、发送与分析的能力。
runhook
·
2010-09-03 17:16
架构
剖析
深度
休闲
winpcap
深度剖析
WinPcap
之(四)――
WinPcap
的体系架构(1)
WinPcap
是Win32平台下用于数据包捕获与网络分析的一个架构。它包含一个内核层数据包过滤器,一个底层动态链接库(packet.dll),与一个高层并独立于系统的库(wpcap.dll)。
runhook
·
2010-09-03 16:34
架构
剖析
深度
休闲
winpcap
深度剖析
WinPcap
之(四)――
WinPcap
的体系架构(1)
WinPcap
是Win32平台下用于数据包捕获与网络分析的一个架构。它包含一个内核层数据包过滤器,一个底层动态链接库(packet.dll),与一个高层并独立于系统的库(wpcap.dll)。
runhook
·
2010-09-03 16:34
架构
剖析
深度
休闲
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(4)
1.1.8内核的注册表操作在驱动程序的开发中,经常会对注册表进行操作。DDK提供一套对注册表操作的函数。v\:*{behavior:url(#default#VML);}o\:*{behavior:url(#default#VML);}w\:*{behavior:url(#default#VML);}.shape{behavior:url(#default#VML);}v\:*{behavior:
runhook
·
2010-09-03 16:08
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(4)
1.1.8内核的注册表操作在驱动程序的开发中,经常会对注册表进行操作。DDK提供一套对注册表操作的函数。v\:*{behavior:url(#default#VML);}o\:*{behavior:url(#default#VML);}w\:*{behavior:url(#default#VML);}.shape{behavior:url(#default#VML);}v\:*{behavior:
runhook
·
2010-09-03 16:08
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(3)
1.1.6 内核的内存操作 Windows驱动程序使用的内存资源非常珍贵,分配内存时要尽量节约。和应用程序一样,局部变量是存放在栈(Stack)空间中的。但栈空间不会像应用程序那么大,所以驱动程序不适台递归调用或者局部变量是大型结构体。如果需要大型结构体,请在堆(Heap)中申请。 堆中申请内存的函数有以下几个,原型如下:PVOID ExAllocatePool(IN POOL
runhook
·
2010-09-03 15:13
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(3)
1.1.6 内核的内存操作 Windows驱动程序使用的内存资源非常珍贵,分配内存时要尽量节约。和应用程序一样,局部变量是存放在栈(Stack)空间中的。但栈空间不会像应用程序那么大,所以驱动程序不适台递归调用或者局部变量是大型结构体。如果需要大型结构体,请在堆(Heap)中申请。 堆中申请内存的函数有以下几个,原型如下:PVOID ExAllocatePool(IN POOL
runhook
·
2010-09-03 15:13
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(2)
1.5.1 同步处理 Windows是个多任务抢占式的操作系统,如果没有同步机制的控制,所有的线程会任意运行。如果多个线程要求操作同一个资源,这时就需要同步处理。如果驱动程序没有很好地处理同步问题,程序会出错误、操作系统的性能下降、甚至出现死锁等现象。1.5.1.1 自旋锁 自旋锁是一种同步处理机制,它能保证某个资源只能被一个线程所拥有,可用于驱动程序的同步处理。自旋锁的
runhook
·
2010-09-03 15:28
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(2)
1.5.1 同步处理 Windows是个多任务抢占式的操作系统,如果没有同步机制的控制,所有的线程会任意运行。如果多个线程要求操作同一个资源,这时就需要同步处理。如果驱动程序没有很好地处理同步问题,程序会出错误、操作系统的性能下降、甚至出现死锁等现象。1.5.1.1 自旋锁 自旋锁是一种同步处理机制,它能保证某个资源只能被一个线程所拥有,可用于驱动程序的同步处理。自旋锁的
runhook
·
2010-09-03 15:28
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(1)
1.1 Windows驱动的基础知识本节主要描述在
WinPcap
的NPF中经常使用一些编写Windows驱动程序所需掌握的部分基础知识,以便于后面的理解。
runhook
·
2010-09-03 14:32
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(三)――所涉及的Windows驱动基础知识(1)
1.1 Windows驱动的基础知识本节主要描述在
WinPcap
的NPF中经常使用一些编写Windows驱动程序所需掌握的部分基础知识,以便于后面的理解。
runhook
·
2010-09-03 14:32
windows
基础
深度
知识
winpcap
深度剖析
WinPcap
之(二)――网络分析与嗅探的基础知识(5)
1.3.6 交换机欺骗正如前面所提及的,在一个网络上使用交换机使得嗅探更困难。从理论上而言,连接到交换机的计算机应该只看见发给自己的网络流量,然而存在一些技术可绕过该技术限定。下面列举了攻溃交换机防守的几种方式:Ø交换洪泛(SwitchFlooding)一些交换机可以像一个集线器的方式运行,所有的数据包被广播给所有的计算机。这可以通过大量的假MAC地址使交换机地址表溢出来完成,这样移出所有安全防备
runhook
·
2010-09-03 14:26
基础
深度
知识
winpcap
网络分析
深度剖析
WinPcap
之(二)――网络分析与嗅探的基础知识(5)
1.3.6 交换机欺骗正如前面所提及的,在一个网络上使用交换机使得嗅探更困难。从理论上而言,连接到交换机的计算机应该只看见发给自己的网络流量,然而存在一些技术可绕过该技术限定。下面列举了攻溃交换机防守的几种方式:Ø交换洪泛(SwitchFlooding)一些交换机可以像一个集线器的方式运行,所有的数据包被广播给所有的计算机。这可以通过大量的假MAC地址使交换机地址表溢出来完成,这样移出所有安全防备
runhook
·
2010-09-03 14:26
基础
深度
知识
winpcap
网络分析
深度剖析
WinPcap
之(二)――网络分析与嗅探的基础知识(4)
1.3.3 CSMA/CD以太网使用载波监听多点接入/冲突检测(CSMA/CD)协议,为了设备在网络上家交换数据。多点接入这个术语指许多网络设备连接到同一个网段有发送的机会。每个设备赋予等同的发送机会;没有任何设备优先于其它设备。载波监听描述了一个网络设备的以太网接口在传送之前如何监听网线。网络接口确保没有其它信号在网线上,在它传送之前,并且在传送的时候监听确保在同一时刻没有其它网络设备传送数据。
runhook
·
2010-09-03 14:51
基础
深度
知识
winpcap
网络分析
上一页
20
21
22
23
24
25
26
27
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他