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

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

2023-5-12 11:40
7083

我想用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个字节的数据,为啥我比它返回的多。还有我的代码有什么问题吗?求大神指导,感恩


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

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