阅读:1827回复:8
求助:关于修改封包后的发送至应用层的问题
各位兄弟姐妹:
麻烦耐心帮我看看我的方案及有关问题,对于关注本帖的一切人士表示衷心的谢谢 目标: 在IMD层修改封包后,将包发送到上层应用程序,再在上层对包进行SSL加密, 再发送到外网。 我的方案: 我是将其IP改为127.0.0.1,端口改为本地应用程序监听的端口(比如4567) 经过校验和修改后,重新组包,调用NdisSend发送出去,问题: 1、我的上述方案在实际操作可行吗?为什么? 2、像上述情况,我的上层应用程序应该采取什么通信机制(TCP or UDP or Raw Socket),才能看到我内核态向应用层发送的包的内容? 3、存在更好的解决方案吗? 真心谢谢大家的关注,我会一直关注本帖的情况 |
|
沙发#
发布于:2007-06-25 14:28
兄弟姐妹们,在线等啊?
|
|
板凳#
发布于:2007-06-25 16:51
可别沉了啊,着急啊,兄弟们啊 |
|
地板#
发布于:2007-06-26 10:29
过了一天,都没人提点建议啊,大家就帮帮我吧
|
|
地下室#
发布于:2007-06-27 12:04
怎么还没人回点什么的呢?我自己顶了
|
|
5楼#
发布于:2007-06-28 10:39
>我是将其IP改为127.0.0.1,端口改为本地应用程序监听的端口(比如4567)
这个理解有问题,imd截获到tcpip发来的包,直接转到你自己的应用程序,具体涉及到的和应用程序如何通讯,google,搜索一下,这种问题,讨论过太多次了,.具体可以采用ddk ndisuio的同步read,write的方式. 你不用去改变ip地址,改了也没达不到你的目的.在tdi改地址,才有意义,让tcp去转发到的你的后台server..imd在ndis层,已经在tcp协议下层,想通过改变ip地址,转发到你的应用程序,不可能. |
|
6楼#
发布于:2007-07-02 10:14
引用第5楼zhaock于2007-06-28 10:39发表的 : 嗯,首先十分谢谢版主大人的回复,也给了我思路,这么多天,就您回复了,感动ing。 我再确认一下:我是截或了从本主机往外发的http包,不是从外来的包,然后将其IP改为127.0.0.1,端口改为本地应用程序监听的端口(比如4567) 按照我的理解,网卡一接到包,查询目的IP,一看是127.0.0.1,就会走回环,而往上层应用程序发去 这样实现起来不可能吗? |
|
7楼#
发布于:2007-07-02 14:14
你不用去改变ip地址,改了也没达不到你的目的.在tdi改地址,才有意义,让tcp去转发到的你的后台server..imd在ndis层,已经在tcp协议下层,想通过改变ip地址,转发到你的应用程序,不可能.
我在重复一下我说过的.不可能在ndis 层做到.如果想这样做,需要在tdi层处理. |
|
8楼#
发布于:2007-07-03 10:48
引用第7楼zhaock于2007-07-02 14:14发表的 : 谢谢版主大哥 哭死,那我以前做的工作全都白费了啊 本来是想用共享内存做的,IMD一截到符合所需IP包,就放在共享内存里,然后发个事件通知上层APP过来取,听说这样效率不高的,所以才换了上面那种方法 除了改在TDI层做,其他没什么更好的办法实现我的目标吗?TDI我可是没接触过啊 |
|