能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我尝试过注册FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V4层回调,pend 关闭节点,但这一点用处都没有
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
你用微软的inject方案试一下 我记得IRQL Dispatch级别的问题应该需要直接drop这个包并把它reinject到协议栈中,等他再来的时候不是高IRQL级别才能完整处理,微软的WDK代码中有这个案例
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
wx_0xC05StackOver
你用微软的inject方案试一下 我记得IRQL Dispatch级别的问题应该需要直接drop这个包并把它reinject到协议栈中,等他再来的时候不是高IRQL级别才能完整处理,微软的WDK代码中 ...
我很感兴趣这个方案,但却找不到相关资料,有没有详细点的资料发我下,真的非常感谢
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
wx_0xC05StackOver
你用微软的inject方案试一下 我记得IRQL Dispatch级别的问题应该需要直接drop这个包并把它reinject到协议栈中,等他再来的时候不是高IRQL级别才能完整处理,微软的WDK代码中 ...
我找到了相关资料和例子,这个例子是在传输层上挂的,有没有在stream层的方案
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
opq哲哥
我找到了相关资料和例子,这个例子是在传输层上挂的,有没有在stream层的方案
要不这样 你去抄Wireshark的方案,wireshark用了npcap的驱动也是WFP的 他这里肯定有你要的东西 应为wireshark也是把数据回发到ring3的 538K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6F1M7r3y4S2M7q4)9J5k6h3y4G2L8g2)9J5c8X3c8A6M7%4c8Q4x3V1k6F1M7r3y4S2M7q4)9J5k6o6q4Q4x3X3f1%4x3q4)9J5k6i4A6A6M7q4)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0k6Q4z5e0S2Q4b7f1k6F1M7r3y4S2M7q4)9J5y4X3&6T1M7%4m8Q4x3@1t1I4i4K6u0W2y4#2!0q4y4#2)9&6b7g2)9^5y4s2y4G2N6i4u0U0k6h3y4G2k6r3f1`.
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
wx_0xC05StackOver
要不这样 你去抄Wireshark的方案,wireshark用了npcap的驱动也是WFP的 他这里肯定有你要的东西 应为wireshark也是把数据回发到ring3的 0d5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6F1M7r3y4S2M7q4)9J5k6h3x3`. ...
非常感谢,我这就看下
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
其实还是有短连接的问题,程序tcp send后立刻close,后注入的不论是stream或packet都无法正常发送了
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
解决了,在stream callout里面引用net buffer list,这样可以阻止tcp close释放资源,并且我们inject stream也都可以正常发送,最后释放引用就好
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
opq哲哥
解决了,在stream callout里面引用net buffer list,这样可以阻止tcp close释放资源,并且我们inject stream也都可以正常发送,最后释放引用就好
请问在FWPM_LAYER_STREAM_V4, 如何将修改过的数据重新注入,有推荐的网页或git项目吗? 谢谢
|
能力值:
( LV12,RANK:322 )
|
-
-
11 楼
opq哲哥
解决了,在stream callout里面引用net buffer list,这样可以阻止tcp close释放资源,并且我们inject stream也都可以正常发送,最后释放引用就好
WFP中所指NetBufferList回调中第三个参数? FWPS_STREAM_CALLOUT_IO_PACKET* streamPacket;
FWPS_STREAM_DATA* streamData;
streamPacket = (FWPS_STREAM_CALLOUT_IO_PACKET*) packet;
streamData = streamPacket->streamData;
// 改包或者需要重注
streamPacket->streamAction = FWPS_STREAM_ACTION_NONE;
streamPacket->countBytesRequired = 0;
streamPacket->countBytesEnforced = streamData->dataLength;
classifyOut->actionType = FWP_ACTION_BLOCK;
classifyOut->flags |= FWPS_CLASSIFY_OUT_FLAG_ABSORB;
classifyOut->rights &= ~FWPS_RIGHT_ACTION_WRITE;
最后于 2022-10-12 09:01
被一半人生编辑
,原因:
|
能力值:
( LV12,RANK:322 )
|
-
-
12 楼
三杨
请问在FWPM_LAYER_STREAM_V4, 如何将修改过的数据重新注入,有推荐的网页或git项目吗? 谢谢
https://bbs.pediy.com/thread-268515.htm 评论区中的资源Netfilter SDK有你需要的过滤
|
|
|