首页
社区
课程
招聘
[原创]另类挂钩-RING3数据包监视
发表于: 2009-2-1 15:20 182599

[原创]另类挂钩-RING3数据包监视

2009-2-1 15:20
182599
收藏
免费 8
支持
分享
最新回复 (178)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
76
观望~~~~~
2009-3-4 16:13
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
77
看了最早的那个NtDeviceIoControl说法,居然是外国人干的。
从某年某月某日,某某不小心少说了file四个字开始,世界混乱了~~
2009-3-4 16:13
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
78
这位老兄貌似不像有6年相关经验的,貌似是搞Linux下的设备驱动的?
2009-3-4 16:27
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
79
有可能是开发智慧星操作系统设备驱动的
2009-3-4 16:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
80
学习...果然是高手!
2009-3-5 16:07
0
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
81
终于照猫画虎地弄出来个,学到很多,谢谢。
2009-3-13 17:17
0
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
82
收下了
2009-3-13 19:25
0
雪    币: 1312
活跃值: (5164)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
83
谢谢楼主和木桩了!!!!
2009-3-14 23:27
0
雪    币: 8107
活跃值: (1955)
能力值: ( LV8,RANK:122 )
在线值:
发帖
回帖
粉丝
84
学习了,顶一个
2009-3-16 22:49
0
雪    币: 215
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
85
不知道为什么截TCP的recv长度总是很长,1024、60000都有可能,这是和被截程序有关?send倒是正常
2009-3-22 22:15
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
86
recv的长度不是返回数据的长度,而是ring3申请的存放返回数据的BUFFER的长度

如果需要获得RECV的返回数据长度,再调用完原始的NtDeviceIoControlFile后,取IoStatusBlock->Information
2009-3-23 00:47
0
雪    币: 205
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
87
经典,不得不佩服
2009-3-23 15:26
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
88
学习,感谢楼主分享
2009-3-23 16:42
0
雪    币: 234
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
89
真的黑强给。。受不了~~~
2009-3-25 19:23
0
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
90
好啊,谢谢,学习了
2009-3-26 00:43
0
雪    币: 1490
活跃值: (1880)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
91
很好很强大,学习中...
2009-3-26 13:08
0
雪    币: 148
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
92
请教.
如何才能收到UDP的包啊.
加了recvfrom的判断了, 也进不来.

尝试加的判断.

1, 加宏
#define AFD_RECVFROM (0x0001201B)
#define AFD_SENDTO (0x00012023)
2, NewNtDeviceIoControlFile中
        if (IoControlCode != AFD_SEND
                && IoControlCode != AFD_RECV
                && IoControlCode != AFD_RECVFROM
                && IoControlCode != AFD_SENDTO)
        {
                return stat ;
        }
然后下面
                case AFD_RECVFROM:
                        {
                                sprintf(g_Info, "RecvFrom Handle 0x%08x", FileHandle);
                                OutputDebugString(g_Info);
                        }
                        break;

怎么也走不到, 坛中哪位大牛指点一下, 应该修改哪个地方
2009-4-11 10:48
0
雪    币: 217
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
93
这个对overlapped io之类的也有效? IE只是使用了non block io,所以不会有recv收不到数据的情况(这次收不到,下次它还发recv)。如果设定了overlapped io,recv可能不会立即完成,mswsock也不会再去recv,会通过apc的方式得到通知。
2009-4-11 13:03
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
94
对于OVERLAPPED要特别处理~
2009-4-11 22:40
0
雪    币: 217
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
95
呵呵,这个就是麻烦的地方了。还是写spi,或者tdi filter才能最好的处理。
2009-4-11 23:03
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
96
呵呵hook getoverlappedresult之类就可以了~
spi和tdi filter一样有问题

hook tdi clietn一样也不错~
2009-4-11 23:57
0
雪    币: 217
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
97
如果用iocp,或者用completion做overlapped的通知方式,你就没法用hook getoverlappedresult了。
2009-4-12 00:15
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
98
completion的话钩completion 也可以啊~总之钩子都能做到了~
2009-4-12 11:34
0
雪    币: 409
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
99
好文,会忒以撒后藏
2009-6-7 16:26
0
雪    币: 230
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
100
谢谢共享!!!!!
2009-6-11 22:18
0
游客
登录 | 注册 方可回帖
返回
//