WFP开发学习笔记

上传人:大米 文档编号:559071038 上传时间:2024-01-19 格式:DOCX 页数:4 大小:65.70KB
返回 下载 相关 举报
WFP开发学习笔记_第1页
第1页 / 共4页
WFP开发学习笔记_第2页
第2页 / 共4页
WFP开发学习笔记_第3页
第3页 / 共4页
WFP开发学习笔记_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《WFP开发学习笔记》由会员分享,可在线阅读,更多相关《WFP开发学习笔记(4页珍藏版)》请在金锄头文库上搜索。

1、1如何关联数据(路径、进程ID等)到其他层?答:使用函数 FwpsFlowAssociateContext。2. FlowContext关联的数据是否可以关联到FWPS丄AYER_*任意层?答:经过实践测试,发现数据可以关联到TRANSPORT以上层,但不能关联到IPPACKET层(原因未知,微软没有给出 明确说明)。3. TRANSPORT层是否包含了 IP头?答:发送时MDL中部分包含IP头,部分不包含IP头(原因未知,也可能是数据从应用层往下传时,系统还未加上IP 头信息)。接收时MDL中都包含有IP头。4.IPPACKET 层是否包含了 IP 头?答:发送时OUTBOUND,MDL中全

2、部包含了 IP头,MDL的偏移量与数据长度都正确。接收时INBOUND,MDL中全部包含了 IP头,但MDL的偏移量与数据长度不匹配(原因未知)。且接收时微软默 认把IP头给隐藏了(原因未知),可以通过修改偏移量来获取有效IP头。具体变量为:NetBuffer-DataLength(真实长度),NetBuffer-CurrentMdlOffset(真实偏移地址,如果需要获取IP头, 需要前移),Mdl-ByteCount(此数据接收时不准,需根据实际数据长度去获取数据,类似UNICODE_STRING)。5. 接收时 MDL 中的偏移量与数据长度不匹配该如何调整,获取有效数据?答:通过函数 N

3、disRetreatNetBufferDataStart 前移偏移地址。 通过函数 NdisAdvanceNetBufferDataStart 还原便宜地址。通过函数NdisGetDataBuffer或者自己写获取数据函数。记得需要判断偏移地址CurrentMdlOffset所在的MDL,和实 际的数据长度。6. FWPM_LAYER_ALE_AUTH_CONNECT_V4 与 FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4 的区别。答: FWPM_LAYER_ALE_AUTH_CONNECT_V4 不带数据包,只是一个发起连接的动作,里面不能进行数据拦截操作。FWPM丄

4、AYER_ALE_FLOW_ESTABLISHED_V4带有数据包,里面可以进行数据拦截操作。7. 可否修改 IP 数据包?答:可以修改IP数据包。修改IP包信息,在IPAPCKET层。修改TCP/UDP包信息,在TRANSPORT层。修改数据包 体,在 ALE 层即可。8可否获取整个IP包数据?答:不能获取MAC包数据,WFP只支持获取IP头以后的数据。后面的WDK版本可能支持获取MAC包数据。9新接触WFP该参考哪些资料?答:参考 D:WinDDK7600.16385.1srcnetworktrans 目录下的工程,或者参考看雪上面的例子,还有寒江的第 15 章(入门用)。10. WFP

5、启动/结束流程图: (图 1)11. FlowContext 操作流程和注意事项?答:要关联Context,注册callout时必须有Deletion回调函数,否则关联会失败。1.创建 Context。 2.添加到 Context 链表。 3.关联 Context。 4.在指定层通过参数 UINT64flowContext 获取 Context。5使用Contexto 6.Context生命周期结束时,系统会自动调用Deletion回调函数,你需要在此从链表删除并释放内存。7. 驱动卸载时,通过执行FwpsFlowRemoveContext,将没有销毁的Context销毁掉。调用FwpsFlo

6、wRemoveContext 12.个人对 WFP 的简单理解: 注册一组回调函数,所有进出网络数据系统都会调用这组回调函数,你在里面进行逻辑判断,得出结果 BLOCK/PERMIT 系统根据你提供的结果进行拦截/放行。13.WFP 常用函数FwpsInjectionHandleCreate FwpsInjectionHandleDestroyFwpsQueryPacketInjectionStateFwpmEngineOpenFwpmEngineClose FwpmTransactionBeginFwpmTransactionCommitFwpmTransactionAbort FwpsCalloutRegisterFwpmCalloutAdd FwpmSubLayerAddFwpmFilterAddFwpsCalloutUnregisterById FwpsFlowAssociateContextFwpsFlowRemoveContext MmGetSystemAddressForMdlSafe(图2)ALE回调函数INBilLIND/W.TBaiND.创建F】owContEMtFlowCnntfrxt(n也存/拦截01逸)1*站朿TRANSPORT冋调雷.lABOLDZOUTBQUNC1r得食1卩数据流 fSlFlontcxiF啟行/拦截(可选)结朿

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号