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

我可以这样吗??

楼主#
更多 发布于:2003-05-07 14:48
要做一个加密的实验,想通过修改Ip  头中的内容来实现对数据的加密,这种想法是否可行??是否可以修改Ip 头中的checksum, 请问这个字段的内容是在什么时候用的,如果我在对等端将checksum 修正过来,是否可以达到正常通信的目的?? 还是说在底层的驱动中会检查这个字段,从而丢弃数据包??
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-07 14:58
可以,只是需要注意不同的checksum有不同的计算范围
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
tsinghui
驱动牛犊
驱动牛犊
  • 注册日期2003-04-23
  • 最后登录2003-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-07 15:22
谢谢你的指点。

我在PMSend() 中修改了IpHeader 的 checksum 内容,在PtReceive() 中将checksum 修改回来。在两台机器上试验,发现互相都ping 不通,不知道是什么原因??两台机器处于局域网上同一个网段,不存在转发的问题。
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-07 18:01
不同类型的数据包有不同的计算checksum的计算范围,
不能所有的数据包都用同一种方法计算checksum
具体可以看有关的rfc文件,前面也有贴子详细说明
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
tsinghui
驱动牛犊
驱动牛犊
  • 注册日期2003-04-23
  • 最后登录2003-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-08 10:13
谢谢你热烈的参与,给分了先。
但是你好像没有明白我的意思,我并不是需要计算checksum。我现在只针对ip 包进行试验,我的做法很简单,就是简单的在发送的时候将checksum + 1, 在接受的时候将checksum - 1。

这样,如果只是在对等端的上层进行校验,就能够正常通信,因为我已经将checksum 更正过了。但是结果并不是这样,不知道是什么原因。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-08 12:59
因为发包的时候的校验和不一定是TCPIP算的。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
tsinghui
驱动牛犊
驱动牛犊
  • 注册日期2003-04-23
  • 最后登录2003-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-12 10:24
谢谢大家的参与,问题已经解决。错误是我自己造成的,就是在发送的时候包的提取不对,经过修改,一切ok!!
游客

返回顶部