监听以太网(3) Packet32数据结构说明

Packet32包中的数据结构:

第一个重要的数据结构:_ADAPTER(关于Network Adapter的)

typedef struct _ADAPTER
{
// 一个打开的NPF driver实例的句柄:
HANDLE hFile;
// 当前打开的网卡的名字:
CHAR SymbolicLink[MAX_LINK_NAME_LENGTH];
// 在这块Adapter上,一个数据包被写的次数:
int NumWrites;

// 这块Adapter上的read操作的通知事件。它可以被传递给标准Win32函数(如WaitForSingleObject或者WaitForMultipleObjects),这样可以等待到driver的缓冲区内有数据到来。在同时等待几个事件的GUI程序中,它特别有用。在Windows2000/XP中,函数PacketSetMinToCopy()可以用来设置内核缓冲区中激发本事件的最小数据大小:

HANDLE ReadEvent;
// 设置一个时间,到时候,即使没有捕获任何包,read操作也会被释放,ReadEvent也会被触发:
UINT ReadTimeOut;
} ADAPTER, *LPADAPTER;

第二个重要的数据结构:_PACKET(关于Packet的)

typedef struct _PACKET
{
// 向后兼容用的:
HANDLE    hEvent;
// 向后兼容用的:
OVERLAPPED  OverLapped;
// 存放Packets的缓冲区:
PVOID    Buffer;
// 缓冲区的大小:
UINT     Length;
// 当前缓冲区中有效的字节数,如,上一次调用PacketReceivePacket()函数接收到的字节数:
DWORD    ulBytesReceived;
// 向后兼容用的:
BOOLEAN   bIoComplete
} PACKET, *LPPACKET;

第三个重要的数据结构:_PACKET_OID_DATA (关于OID请求的)

typedef struct _PACKET_OID_DATA
{
// OID的code,有效的OID code的定义参见ntddndis.h;比如:
// OID_GEN_SUPPORTED_LIST,OID_GEN_VENDOR_DESCRIPTION等:
ULONG Oid;
// 成员Data的长度:
ULONG Length;
// 存放发送给网卡或者从网卡接收的数据的缓冲区:
UCHAR Data[1];
}
typedef struct _PACKET_OID_DATA PACKET_OID_DATA, *PPACKET_OID_DATA;

时间: 2024-10-31 20:43:15

监听以太网(3) Packet32数据结构说明的相关文章

监听以太网(1) Packet32包说明

简述: 监听网络上的所有数据,是一个比较有趣的题目.流传比较广的一些监听程序,它们都使用了一个更加著名的开发包Packet32.比如,ntsniff.EthernetSpy.ntpacket等,还有赫赫有名的WinPcap.应用程序通过它可以设置网卡的工作模式,直接在网卡上读写数据,等等. 一般使用的Packet32的实现版本,是微软的Packet32.c和Packet32.h.这个版本写得比较简单. WinPcap开发包中自带的Packet32,是Politecnico di Torino重写

监听以太网(4) Packet32函数SDK

Packet32包中的函数说明: No.3. PacketSetHwFilter (设置过滤器) 设置一个hardware filter.比如,Filter参数传递NDIS_PACKET_TYPE_PROMISCUOUS,就可以设置网卡为混杂模式. BOOLEAN PacketSetHwFilter( LPADAPTER AdapterObject, ULONG Filter ); Parameters: AdapterObject: [in] 指向一个_ADAPTER结构的指针. Filter

监听以太网(2) Packet32包说明续

Packet32包中的函数说明: No.2.PacketOpenAdapter (打开网卡) 根据传入的设备名,打开它. LPADAPTER PacketOpenAdapter( LPTSTR AdapterName ): Parameters: AdapterName: [in] 要打开的设备的名字. Return Values: 如果打开成功,返回一个指针,它指向一个正确初始化了的ADAPTER Object. 否则,返回NULL. Usage: [C/C++] C/C++ Usage Sa

用原始套接字实现网络监听

1.引言 网络监听工具(sinff)是提供给网络管理员的一类管理工具.在以太网中(Ethernet),当网络上连接多台计算机时,某瞬间只能有一台计算机可以传送数据.以太网中,数据是以被称为帧的数据结构为单位进行交换的.通常,在计算机网络上交换的数据结构体的单位是数据包.而在以太网中则称为帧.这种数据包是由记录着数据包发送给对方所必需信息的报头部分和记录着发送信息的报文部分构成.报头部分包含接收端的地址.发送端的地址.数据校验码等信息. 在以太网上,帧(数据包)是被称为带碰撞检测的载波侦听多址访问

数据中心面对的网络监听技术

数据中心里最宝贵的就是数据,这些数据里隐含着很多私有的.机密信息,小到个人隐私,大到国家安全,所以保护数据是数据中心最为关键的任务,数据一旦被窃取被泄露,给数据中心带来的损失无法估计.然而,这些数据在数据中心里以及外部并不是静止的,躺在存储硬盘里睡大觉,而是通过网络在不断传递和变化着,网络成为数据传递的最为重要通道,无论是数据中心内部还是外部.对网络进行监听,就可以掌握数据的基本信息和特征,听起来网络监听这个词语贬义成分居多.而实际上,对网络监听对于数据中心管理非常重要.不过的确是凡事都有其两面

JS针对浏览器窗口关闭事件的监听方法集锦_javascript技巧

本文实例总结了JS针对浏览器窗口关闭事件的监听方法.分享给大家供大家参考,具体如下: 方式一:(适用于IE浏览器,而且刷新不提示,只在点击浏览器关闭按钮的时候提示) <script type="text/javascript"> window.onbeforeunload=onclose; function onclose() { if(event.clientX>document.body.clientWidth&&event.clientY<

UNIX系统管理:网络监听概念

网络监听工具的提供给管理员的一类管理工具.使用这种工具,可以监视网络的状态.数据流动情况以及网络上传输的信息. 但是网络监听工具也是黑客们常用的工具.当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击.将网络接口设置在监听模式,便可以源源不断地将网上传输的信息截获. 网络监听可以在网上的任何一个位置实施,如局域网中的一台主机.网关上或远程网的调制解调器之间等.黑客们用得最多的是截获用户的口令. 1什么是网络监听 网络监听是黑客们常用的一种方法.当成功地登录进一台网络上的主机,并

Android中监听判断网络连接状态的方法_Android

在无网或网速差的状态下,没必要去连接服务器. 你可以使用 ConnectivityManager 来判断是否连到网络,以及网络类型. 判断是否有网络连接 下面的代码用ConnectivityManager查询是活动网络连接判断是否有Internet连接. 复制代码 代码如下: ConnectivityManager cm =         (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);  

使用JAVA通过ARP欺骗类似P2P终结者实现数据封包监听_java

如果说最近有什么不爽的事情,那就是与人共享网络的痛苦了,特别是当其他共享者使用那些P2P工具下载软件,而你却看着网页进度条一点点爬的时候,那种痛苦对于我这种网虫级别的人来说,那简直就是痛不欲生.绝对不能再忍了,于是乎上网下载P2P终结者,哼,你们不仁我则不义,看谁厉害.软件下好后,立刻启动监控,然后尝试了下速度,哇,那个爽啊.可惜好景不长,没多久对方就跑来问我为什么他们断网了?我楞了一下,那垃圾软件居然连对方的网都断了,于是支支唔唔的应付了他,说我看下,总算勉强过关,还好他们不懂电脑,不然就掉大