IGMP WFP 过滤条件

问题描述

我正在开发一个 WFP 驱动程序来检测 IGMP 数据包并获取相同的副本以进行分析。 我可以过滤 ICMP 但不能过滤 IGMP 数据包,希望 IGMP 和 ICMP 的过滤器配置没有太大变化。 添加过滤器配置的代码片段,是否有任何特定的方法来过滤 IGMP 或我缺少的任何过滤器配置?..

filter.displayData.name = EXAMPLE_FILTER_NAME;
     filter.displayData.description = EXAMPLE_FILTER_DESCRIPTION;
     filter.action.type = FWP_ACTION_CALLOUT_inspection;    
     filter.subLayerKey = EXAMPLE_SUBLAYER_GUID;
     filter.weight.type = FWP_UINT8;
     filter.weight.uint8 = 0xf;        
     filter.numFilterConditions = 1;    
     filter.layerKey = FWPM_LAYER_INBOUND_TRANSPORT_V4;    
     filter.action.calloutKey = EXAMPLE_CALLOUT_GUID;
    
     // IGMP protocol filter condition
     fwpConditions[0].fieldKey = FWPM_CONDITION_IP_PROTOCOL;
     fwpConditions[0].matchType = FWP_MATCH_EQUAL;
     fwpConditions[0].conditionValue.type = FWP_UINT8;
     fwpConditions[0].conditionValue.uint8 = IPPROTO_IGMP;
     filter.filterCondition = fwpConditions;
 status = FwpmFilteradd(filter_engine_handle,&filter,NULL,&(example_filter_id));
 if (status != STATUS_SUCCESS){
     DbgPrint("Failed to register example filter,status 0x%08x",status);
 }
 else{
     DbgPrint("Example filter registered");
 }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)