daisyboy
驱动小牛
驱动小牛
  • 注册日期2002-10-24
  • 最后登录2012-05-21
  • 粉丝3
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值1点
  • 好评度56点
  • 原创分0分
  • 专家分0分
阅读:1464回复:8

问个很弱的问题......别嘲笑偶哈...;)

楼主#
更多 发布于:2003-07-11 16:41
在NDIS驱动层怎么组织并发送一个数据包啊?
我想抓住本机发送的某个IP包,将它整个封装为新的IP包,转发到一台服务器上。好象有点类似于VPN啥的。

在应用层俺知道用socket(),send()等函数来制作和发送数据包,可是在驱动层俺不会。55555555555

最新喜欢:

baoyibao99baoyib...
合作c/c++/ndis/pppoe/802.1x!
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-11 18:46
不就是NAT吗
在ptrecieve和ptreciepacket中,重新组报,
在ptsendcomplete中释放

[编辑 -  7/11/03 by  antspower]
放弃瘟草,现吃李草
daisyboy
驱动小牛
驱动小牛
  • 注册日期2002-10-24
  • 最后登录2012-05-21
  • 粉丝3
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值1点
  • 好评度56点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-11 18:53
不就是NAT吗
在ptrecieve和ptreciepacket中,重新组报,
在ptsendcomplete中释放

[编辑 -  7/11/03 by  antspower]



俺不会组包。:(
谁给段源代码看看啊?
俺能拦截包,并且把包分析出来的。只是不知道包头都应该包括哪些东西,有啥需要注意的,否则组出来的包不可用的。:(
合作c/c++/ndis/pppoe/802.1x!
daisyboy
驱动小牛
驱动小牛
  • 注册日期2002-10-24
  • 最后登录2012-05-21
  • 粉丝3
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值1点
  • 好评度56点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-11 18:56
[quote]不就是NAT吗
在ptrecieve和ptreciepacket中,重新组报,
在ptsendcomplete中释放

[编辑 -  7/11/03 by  antspower]



俺不会组包。:(
谁给段源代码看看啊?
俺能拦截包,并且把包分析出来的。只是不知道包头都应该包括哪些东西,有啥需要注意的,否则组出来的包不可用的。:( [/quote]

尤其是IP头有好多参数,
union
{
BYTE VersionAndHeaderLength; // Version 4 bit, Header Length 4 bit * 4
struct
{
BYTE HeaderLength : 4;
BYTE Version : 4;
};
};
BYTE TypeOfService;
WORD DatagramLength;
WORD Id;
WORD FlagsAndFragmentOffset; // Flags 3 bit, Fragment Offset 13 bit
BYTE TimeToLive;
BYTE Protocol;
WORD CheckSum;
BYTE SourceIp[4];
BYTE DestinationIp[4];

其中checksum是校验码。我不知道该怎么填写啊。5555555
合作c/c++/ndis/pppoe/802.1x!
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-11 20:10
修改IP后要重新计算checksum,算法满天下都是 :D
呵呵,去看看RFC啊,这么问可能没人回答
http://www.csdn.net/develop/article/17/17991.shtm
看了这个晓得CHECKSUM 是怎么算的

[编辑 -  7/11/03 by  antspower]
放弃瘟草,现吃李草
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-11 20:25
http://www.driverdevelop.com/forum/viewthread.php?tid=4438
看了这个也许对你有用
放弃瘟草,现吃李草
daisyboy
驱动小牛
驱动小牛
  • 注册日期2002-10-24
  • 最后登录2012-05-21
  • 粉丝3
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值1点
  • 好评度56点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-11 20:53
http://www.driverdevelop.com/forum/viewthread.php?tid=4438
看了这个也许对你有用


你真是好人哈!:)
要是有人给我点源码看看就好了。否则没信心。:(
合作c/c++/ndis/pppoe/802.1x!
daisyboy
驱动小牛
驱动小牛
  • 注册日期2002-10-24
  • 最后登录2012-05-21
  • 粉丝3
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值1点
  • 好评度56点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-07-11 21:09
修改IP后要重新计算checksum,算法满天下都是 :D
呵呵,去看看RFC啊,这么问可能没人回答
http://www.csdn.net/develop/article/17/17991.shtm
看了这个晓得CHECKSUM 是怎么算的

[编辑 -  7/11/03 by  antspower]


我一个都没找到。你找一个发给我吧。有劳了。:)
合作c/c++/ndis/pppoe/802.1x!
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-07-12 08:16
[quote]修改IP后要重新计算checksum,算法满天下都是 :D
呵呵,去看看RFC啊,这么问可能没人回答
http://www.csdn.net/develop/article/17/17991.shtm
看了这个晓得CHECKSUM 是怎么算的

[编辑 -  7/11/03 by  antspower]


我一个都没找到。你找一个发给我吧。有劳了。:) [/quote]
找不到?好象在驱动当前的页面,就有啊.


放弃瘟草,现吃李草
游客

返回顶部