blankheart
驱动牛犊
驱动牛犊
  • 注册日期2008-07-30
  • 最后登录2009-01-24
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望17点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6801回复:7

怎样截获一个网络数据包并修改后发送出去?

楼主#
更多 发布于:2008-08-18 13:41
我现在正在做一个截获网络数据包然后修改后发送出去的程序
但是现在我陷入了迷茫不知道用什么方法可以实现它,不知道那位大侠可以给点建议
我使用的平台是windows xp,我在该主机上装了两个网卡,目的是想用它做为网关实现
数据转发,我的程序就是想在截获它转发的数据对它的数据包头作一些修改,主要是想加入一些
可以提高QOS的参数,修改后将它按照原来的地址发送出去
我知道很多程序方法都可以实现数据包的截获,但是在截获后再进行修改我就不会了
不知道哪位好心人能给我点建议,我真的是为了这个东西郁闷坏了
robar
驱动牛犊
驱动牛犊
  • 注册日期2007-06-27
  • 最后登录2013-06-24
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望41点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-08-18 17:17
去NDIS开发板块,你应该能找到答案
hpulx
驱动牛犊
驱动牛犊
  • 注册日期2005-09-07
  • 最后登录2009-03-30
  • 粉丝0
  • 关注0
  • 积分151分
  • 威望17点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-08-23 01:45
这个容易,一个简单的API HOOK就可以啊,数据修改后,将它发送到对应的socket句柄。
socket可以在send函数中和截获到的数据绑定起来。
vxasm
驱动牛犊
驱动牛犊
  • 注册日期2008-09-19
  • 最后登录2010-05-24
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望73点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分1分
地板#
发布于:2008-09-19 15:06
如果你只是想截获而又不破坏原来的数据包的话,就用 NDIS Protocol driver 吧,Iris就是这样做的。
dfsy427
驱动牛犊
驱动牛犊
  • 注册日期2008-05-20
  • 最后登录2009-07-08
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-09-21 16:48
别误导人家,,数据包修改 直接改数据就得了.
注意几点:
1:协议要搞清楚
2:记得要校验
super9
驱动牛犊
驱动牛犊
  • 注册日期2008-08-06
  • 最后登录2009-04-29
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望99点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-03-20 21:51
是否可以尝试改ttl值作为发送数据?感觉方便点
evergreen7
驱动牛犊
驱动牛犊
  • 注册日期2009-03-22
  • 最后登录2010-04-02
  • 粉丝1
  • 关注0
  • 积分43分
  • 威望431点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-05-12 23:33
我只知道 NDIS可以做~~
zealot820514
驱动牛犊
驱动牛犊
  • 注册日期2010-01-15
  • 最后登录2010-05-04
  • 粉丝0
  • 关注0
  • 积分-16分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2010-01-18 11:13
用NDIS做比较好,可以截获所有数据包。可以采用微软的WDK开发包,修改Passthru就可以实现这个功能
zzzealot
游客

返回顶部