阅读:2065回复:9
关于应用passthru来修改本机所发包的疑问
近来搞定了数据包的截获,
可以用ptreceivepacket来截获指定内容的包了, 但是当处理发送包时又遇到了问题, 我想在发送本机包时改掉要发包的一些内容, 比如取出我的ip,来改成任意的, 取出指定端口的数据包,修改包中的端口值, 修改完后再发出去, 各位,给点思路, 应该在什么地方做文章, 就象接收时的receive函数, 发送应该用什么呢, 还有修改后用什么来发出去啊? |
|
最新喜欢:chili |
沙发#
发布于:2002-07-29 15:53
passthru中间层驱动程序,首先,要判断所截获包的类型,若为IP包,根据IP包的格式作相应修改。
|
|
板凳#
发布于:2002-07-29 16:10
passthru中间层驱动程序,首先,要判断所截获包的类型,若为IP包,根据IP包的格式作相应修改。 我现在想知道发送数据包时要经过什么函数, 是不是可以直接修改函数中的数据 就可以达到修改数据包的目的, 还有关于ip头的校验和该怎么办啊 谢谢你的回复 |
|
地板#
发布于:2002-07-29 16:20
在MPSend中处理,可以直接改包内容,如果修改了Packet中的Mdl链的话,记得在PtSendComplete中通知上层发送成功前恢复。
如果你是Windows机器之间通信的话,并且如果通信对方也有你的Driver会把你改动的东西改回去的话,可以不用管checksum,因为对checksum的检查还在上面,如果不是的话,就给它重算一下好了。 算了算了,还是直接重算一下来的痛快!至于怎么算去看【RFC1071】。 |
|
|
地下室#
发布于:2002-07-29 16:24
重算是必须的,如果checksum不对,如果中间有什么路由器之类的就会通不过!
|
|
5楼#
发布于:2002-07-29 16:34
重算是必须的,如果checksum不对,如果中间有什么路由器之类的就会通不过! 难道路由器还要检查ip包的内容吗, 我一直以为路由器只是通过检查物理包就可以了啊?? 在MPSend中处理,可以直接改包内容,如果修改了Packet中的Mdl链的话,记得在PtSendComplete中通知上层发送成功前恢复。 那就重算一遍了,多谢你的回答啊 , 那么还有什么其他要注意的吗? 另外还有一个问题就是我如果将ip改成一个 我的网络中不会出现的ip,比如改成美国的, 那么经过的路由器会不会因为本网内没有这个ip就丢弃呢?? |
|
6楼#
发布于:2002-07-29 16:57
呵呵,这些都要看路由器的设置了!
不过我想它是不会检测这个ip是去哪的! |
|
7楼#
发布于:2002-07-29 17:08
呵呵,这些都要看路由器的设置了! 不是的,您误会我的意思了啊, 我的意思是说我改动了源ip, 而我的局域网是通过一个路由器连接出去的, 因为本网内没有这个源ip, 路由器会有反应吗? |
|
8楼#
发布于:2002-07-29 17:31
这都要看路由器的配置!
|
|
9楼#
发布于:2002-07-31 09:52
近来搞定了数据包的截获, 问题搞定了吗? |
|
|