首页
社区
课程
招聘
[求助]WFP如何抓包 ping baidu.com
2023-5-12 11:40 6289

[求助]WFP如何抓包 ping baidu.com

2023-5-12 11:40
6289

我想用WFP过滤出我需要的网络访问,过滤回调函数如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
VOID NTAPI classifyFn(
    _In_ const FWPS_INCOMING_VALUES0* inFixedValues,
    _In_ const FWPS_INCOMING_METADATA_VALUES0* inMetaValues,
    _Inout_opt_ void* layerData,
    _In_opt_ const void* classifyContext,
    _In_ const FWPS_FILTER* filter,
    _In_ UINT64 flowContext,
    _Inout_ FWPS_CLASSIFY_OUT0* classifyOut
) {
    if (layerData != NULL) {
        DbgPrint("layerData != NULL");
        PNET_BUFFER_LIST pNetBufferList = (PNET_BUFFER_LIST)layerData;
        PNET_BUFFER pFirstBuffer = NET_BUFFER_LIST_FIRST_NB(pNetBufferList);
        PMDL pMDL = NET_BUFFER_FIRST_MDL(pFirstBuffer);
        ULONG dataBufferLength = 0;
        VOID* pData = NULL;
        while (pMDL) {
            NdisQueryMdl(pMDL, (PVOID*)&pData, &dataBufferLength, NormalPagePriority);
            if (pData != NULL) {
                for (ULONG i = 0; i < pMDL->ByteCount; i++) {
                    DbgPrint("%d == %c", i, ((char*)pData)[i]);
                }
            }
            pMDL = pMDL->Next;
        }
    }

用debugview查看打印结果如下
求助,百度应该返回的32个字节的数据,为啥我比它返回的多。还有我的代码有什么问题吗?求大神指导,感恩


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 0
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
炒米肉松 2023-9-6 17:12
2
0
你得知道ping baidu.com这个操作做了什么。
这个行为有两个网络请求(无DNS缓存的情况下)。
一个是解析百度域名的DNS请求(一般为53端口的UDP)。
二是发送icmp到DNS解析结果中的IP地址。
一般屏蔽一个网站,做DNS污染就可以了。
雪    币: 0
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
炒米肉松 2023-9-6 17:13
3
0
推荐你一个过滤框架 netfilter
游客
登录 | 注册 方可回帖
返回