如何在服务程序外替换服务应答数据包,而不影响正常通讯。详见内!

colorknight 2003-09-26 02:52:26
一个已开发好的服务应用程序,对于客户端的特定请求需要替换其中的内容为特定的信息,现在的思路是在数据包从机器发出前对其进行改写。因为服务应用程序已写好由于特殊原因不能对其更改。客户端更改又不太可行,所以只好出此下策。但兄弟又不知道,此思路可不可行,如果可行当采用何种技术,望知者言无不尽!多谢!
...全文
114 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
colorknight 2003-09-26
  • 打赏
  • 举报
回复
ttd_ttt@sina.com.cn谢谢!!!
tide2355 2003-09-26
  • 打赏
  • 举报
回复
你的邮箱??
tide2355 2003-09-26
  • 打赏
  • 举报
回复
ws2_32.dll会调用相应的winsock spi函数
你只要自己做一个wsp(winsock provider) 替代windows原有的wsp
并且在自己的wsp里面进行你要做的处理就可以了
使用之前必须安装你的wsp.
可以用wsc(winsock配置)进行安装。也可以修改注册表进行安装。
colorknight 2003-09-26
  • 打赏
  • 举报
回复
谢谢,有例子吗?可不可以给一份。
tide2355 2003-09-26
  • 打赏
  • 举报
回复
通讯方式如果是tcp的话
直接用winsock的服务提供者进行开发
这种方式比较简单
一个月左右应该没什么问题
colorknight 2003-09-26
  • 打赏
  • 举报
回复
是吗!我想要的功能就是抓住应用程序的这个数据包,扫描它,将它的信息改掉,然后发出去。我不知道这要多大的工作量,能给介绍一下吗?以前实在是没写过。
tide2355 2003-09-26
  • 打赏
  • 举报
回复

说句实话
写驱动更麻烦
我一同事写NDIS驱动2个月了,才刚有点眉目
colorknight 2003-09-26
  • 打赏
  • 举报
回复
可能我讲的不够清楚,服务器的负担挺大的,有WEB应用在上面,如果为其做这种转发,架构上可能或多或少,客户不同意。
colorknight 2003-09-26
  • 打赏
  • 举报
回复
oldnew(^_^):你的方法相当于做代理,或许还要添加新的设备来运行,如果在服务器上安装代理似乎负担大了一点,编程复杂度也挺大。我希望的就是不在应用层解决此问题,我想让系统运行起来非常有效。所以,你的方法肯定能实现,但不是我的首选,不过谢谢你的方法,如果你要是有更好的办法我真诚的希望你能讲出来。我想到了用驱动程序去实现,可又没写过,也不知怎么写,希望后面的朋友多提意见,不吝指教。
tide2355 2003-09-26
  • 打赏
  • 举报
回复

楼上的方法简单可行
实现起来工作量也不大
支持
oldnew 2003-09-26
  • 打赏
  • 举报
回复
我看你这个主要是应用层的事情,没有必要象tide2355(疾风之狼)在传输层做手脚
应用层的问题就是应用层解决

你可以在服务端和客户端之间在加一个程序啊,这个程序连你现在的服务端,客户端连你的程序
你新程序做个过渡和转换

这个问题不是没人懂,是大家经常这样做.
colorknight 2003-09-26
  • 打赏
  • 举报
回复
没人懂吗?
tide2355 2003-09-26
  • 打赏
  • 举报
回复
如果通讯方式为spi层的话
你可以采用wsp hook方式在客户端进行数据的拦截替换。
具体实现可以查阅下<windows网络编程>的第14章:第14章 Winsock 2服务提供者接口
费尔个人防火墙1。0版就是使用的这个技术。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧