阅读:1106回复:0
求救(我是超级菜):NDIS过滤的代码,向大牛讨教一下!
请问前辈:
我下载了一个NDIS过滤的源码是分成两个部分的: 一个部分是HOOK的NDIS的四个函数:NdisRegisterProtocol、NdisDeregisterProtocol、NdisOpenAdapter、NdisCloseAdapter, 并有一个内核控制代码IOCTL_CMD_GET_KM_IFACE:是返回一个这样的结构 struct ndis_hk_interface { ULONG version; /**< should be NDIS_HK_INTERFACE_VER */ /** * Get list of adapters * @param buf output buffer for adapter names * @param buf_size size in wchar_t of buf (can be 0) * @return number of wchar_t has to be in buffer * if greater than buf_size only partial information has been copied * @see get_adapter_list */ int (*get_adapter_list)(wchar_t *buf, int buf_size); /** * Attach or remove filter * @param flt information about packet filter * @param add TRUE - attach filter; FALSE - remove filter * @param to_top TRUE - for attaching to top of stack (useless with add == FALSE) * @see attach_filter */ void (*attach_filter)(struct filter_nfo *flt, BOOLEAN add, BOOLEAN to_top); #if NDIS_HK_INTERFACE_VER > 1 // add future definitions here... #endif }; 而这个结构的全局变量什么也没做就传到了过滤驱动,然后给赋值。 哎我表达不清楚! 我其实,意思是,他传这个变量有什么用啊,我本来想应该传的是一些过滤到的数据,然后经过过滤驱动进行处理在返回到这个HOOK NDIS的驱动。所以我就看不懂了,请你们帮帮我吧! |
|