buzhihuigai
驱动牛犊
驱动牛犊
  • 注册日期2005-07-11
  • 最后登录2007-03-30
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1513回复:3

IMD 能否解析上层发下来的数据包?

楼主#
更多 发布于:2005-07-18 10:57
  http://bbs.zndev.com/read.php?tid=75207

中一楼 yongsheng0620  说“做imd的miniport驱动可以实现截获系统发出的IP包,但要在NDIS上做分析,很难”

看起来似乎难以在中间层解析上层发下来的包

http://bbs.zndev.com/read.php?tid=78045&fpage=&toread=&page=2
这里  第13楼 WY.lslrt 说“截获发送的数据包,应该中间层上层借口中截获。就是你说的那个函数。在中间加上你的过滤规则”

似乎又可以在中间层对系统发送的数据包进行解析 匹配过滤规则

中间层能否对系统发出的数据包进行解析,哪位大虾可以详细说明一下

我按以太包的格式解析接收的数据包,可以解析出来,发送的数据包 却怎么也不对

从传下来的包结构里
typedef struct _NDIS_PACKET {
    NDIS_PACKET_PRIVATE  Private;
    union {
        struct {
             UCHAR       MiniportReserved[2*sizeof(PVOID)];
             UCHAR       WrapperReserved[2*sizeof(PVOID)];
        };
        struct {
             UCHAR       MiniportReservedEx[3*sizeof(PVOID)];
             UCHAR       WrapperReservedEx[sizeof(PVOID)];
        };
        struct {
             UCHAR       MacReserved[4*sizeof(PVOID)];
        };
    };
    ULONG_PTR            Reserved[2];
    UCHAR                ProtocolReserved[1];
} NDIS_PACKET, *PNDIS_PACKET, **PPNDIS_PACKET;
没看出数据在哪啊
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-07-19 10:29
很显然是你的代码,有问题。找一段代码参考一下,可以搜搜以前的帖子
buzhihuigai
驱动牛犊
驱动牛犊
  • 注册日期2005-07-11
  • 最后登录2007-03-30
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-19 10:16
MSDN里说 Chained to each packet descriptor are one or more buffer descriptors mapping buffers that contain network packet data, either received or to be transmitted.


那直接 NdisGetFirstBufferFromPacket(,,,,)  取得第一个Buffer的地址,按数据包格式解析  怎么就机器重启呢?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-07-18 11:22
当然可以解析,需要你先搞清楚NDIS_PACKET,NDIS_BUFFER的结构和关系
游客

返回顶部