我的需求是在ndis里把包拦下来后,在包的某个地方加上16字节的内容,用来表示该包是我们自已的包,这个技术哪位朋友做过?顺便请教另一外问题,tdi怎么和ndis结合来控制哪些进程是可信的,哪些是不可信的.如果不方便提供详细资料,只要能给点思路就好,先谢了.
回复(15) 2008-01-22 15:43 来自版块 - NDIS网络接口开发
表情
linkin__park就看在哪一层做了,楼上的说的对,如果是做标记什么的在IP层做就方便多了。 我想的是对应用程序透明的进行数据包内容的修改,原有连接保持正常工作,只是换掉通信内容。呵呵。(2008-01-23 12:00)
dfbb7788用不着这么复杂,你可以把所有的包都加个ip头,然后解密,建议你看下ipsec的实现(2008-01-23 11:52)
linkin__park1、如果你硬要自己追加数据,这很复杂,等于你自己重新构造TCP/UDP包,并需要处理接收到的数据包,比如:服务器收到你发送过去的数据包之后会发送ack确认,这个ack并不是协议栈发送数据后所需要的确认。当然肯定是能做到的,就是复杂一些。 何不直接在tcp/udp协议上再加一次自己...(2008-01-23 11:22)
kgdiwss就是所有应用程序通过winsock发送的数据包,我都要拦下来,能让它通过的我要加上自已的标记,这样接收的服务器收到后才知道是我发的包,目前要追加的长度是16字节,加在哪里我也没底. 别外楼上朋友说发送数据包的时候能获取进程PID?你怎么获取的?不是过了协议栈后获取的都不准确的吗...(2008-01-23 10:53)
linkin__park首先你追加的是什么包,对IP,UDP包做处理还OK,对TCP包做修改的话就有点复杂,那会影响到TCP连接状态,搞不对一点连接就断了。 另外,看你的需求是需要对应用程序透明,发送数据包的时候你的驱动加上几个字节,然后接收的时候你再改改,还是挺罗嗦的。 另外,对于发送数据包来说,N...(2008-01-23 09:27)

返回顶部