xiaobai123
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2003-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2065回复:9

关于应用passthru来修改本机所发包的疑问

楼主#
更多 发布于:2002-07-29 15:31
近来搞定了数据包的截获,
可以用ptreceivepacket来截获指定内容的包了,
但是当处理发送包时又遇到了问题,
我想在发送本机包时改掉要发包的一些内容,
比如取出我的ip,来改成任意的,
取出指定端口的数据包,修改包中的端口值,
修改完后再发出去,
各位,给点思路,
应该在什么地方做文章,
就象接收时的receive函数,
发送应该用什么呢,
还有修改后用什么来发出去啊?

最新喜欢:

chilichili
ufo_online
驱动牛犊
驱动牛犊
  • 注册日期2002-04-26
  • 最后登录2004-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-29 15:53
passthru中间层驱动程序,首先,要判断所截获包的类型,若为IP包,根据IP包的格式作相应修改。
xiaobai123
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2003-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-29 16:10
passthru中间层驱动程序,首先,要判断所截获包的类型,若为IP包,根据IP包的格式作相应修改。


我现在想知道发送数据包时要经过什么函数,
是不是可以直接修改函数中的数据
就可以达到修改数据包的目的,
还有关于ip头的校验和该怎么办啊
谢谢你的回复
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-29 16:20
在MPSend中处理,可以直接改包内容,如果修改了Packet中的Mdl链的话,记得在PtSendComplete中通知上层发送成功前恢复。

如果你是Windows机器之间通信的话,并且如果通信对方也有你的Driver会把你改动的东西改回去的话,可以不用管checksum,因为对checksum的检查还在上面,如果不是的话,就给它重算一下好了。

算了算了,还是直接重算一下来的痛快!至于怎么算去看【RFC1071】。
写驱动不如买足彩!!
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-29 16:24
重算是必须的,如果checksum不对,如果中间有什么路由器之类的就会通不过!
xiaobai123
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2003-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-29 16:34
重算是必须的,如果checksum不对,如果中间有什么路由器之类的就会通不过!


难道路由器还要检查ip包的内容吗,
我一直以为路由器只是通过检查物理包就可以了啊??


在MPSend中处理,可以直接改包内容,如果修改了Packet中的Mdl链的话,记得在PtSendComplete中通知上层发送成功前恢复。

如果你是Windows机器之间通信的话,并且如果通信对方也有你的Driver会把你改动的东西改回去的话,可以不用管checksum,因为对checksum的检查还在上面,如果不是的话,就给它重算一下好了。

算了算了,还是直接重算一下来的痛快!至于怎么算去看【RFC1071】。


那就重算一遍了,多谢你的回答啊 ,
那么还有什么其他要注意的吗?

另外还有一个问题就是我如果将ip改成一个
我的网络中不会出现的ip,比如改成美国的,
那么经过的路由器会不会因为本网内没有这个ip就丢弃呢??
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-29 16:57
呵呵,这些都要看路由器的设置了!

不过我想它是不会检测这个ip是去哪的!
xiaobai123
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2003-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-29 17:08
呵呵,这些都要看路由器的设置了!

不过我想它是不会检测这个ip是去哪的!


不是的,您误会我的意思了啊,
我的意思是说我改动了源ip,
而我的局域网是通过一个路由器连接出去的,
因为本网内没有这个源ip,
路由器会有反应吗?
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-29 17:31
这都要看路由器的配置!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-31 09:52
近来搞定了数据包的截获,
可以用ptreceivepacket来截获指定内容的包了,
但是当处理发送包时又遇到了问题,
我想在发送本机包时改掉要发包的一些内容,
比如取出我的ip,来改成任意的,
取出指定端口的数据包,修改包中的端口值,
修改完后再发出去,
各位,给点思路,
应该在什么地方做文章,
就象接收时的receive函数,
发送应该用什么呢,
还有修改后用什么来发出去啊?


问题搞定了吗?
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部