首页
社区
课程
招聘
[原创]基于WinPCap的网络协议开发 - 炮王(超级打炮机)发送数据包(03)
发表于: 2009-5-18 16:55 13103

[原创]基于WinPCap的网络协议开发 - 炮王(超级打炮机)发送数据包(03)

2009-5-18 16:55
13103

【文章标题】: 基于WinPCap的网络协议开发 - 炮王(超级打炮机)发送数据包(03)
【文章作者】: 加百力
【软件名称】: WinPCap
【下载地址】: http://www.winpcap.org/
【内部编号】: MASSADA 0029
【编写语言】: C++
【使用工具】: VS2005
【操作平台】: Windows 2003
--------------------------------------------------------------------------------
【详细过程】

在第一篇文章中我们提到WinPCap的基本功能之一就是:

 1>  在网络上发送原始的数据包。

  发送原始数据包难度不大,只需要应用几个简单的函数就可以了。

  我编写炮王程序的主要目的是为了测试WinPCap/libpcap的抓包能力,在不同网速和数据包大小的条件下libpcap的抓包率有多少。

  
  
  炮王特点:

  01、可以发送任意协议的数据包。TCP/IP等等。

  02、针对每次发包,会返回状态,可以检测是否成功。在程序中如果失败会自动退出。

  03、可以随机修改数据包的:源、目的MAC地址,IP地址,端口、数据内容等属性信息。

  04、使用多线程发包,在XP下最多可以同时开2000个线程发包,发包速度快,流量大。在千兆网卡上可以超过15M/s的速度。

  05、自动统计发包时间,计算每秒发包数量,流量。

  06、可以设置发包的时间间隔,最少到1毫秒。

  炮王使用方法:

  首先直接运行pw.exe可以看到程序提示的参数信息和显示的当前可用网卡信息。可用网卡信息会保存在CardsInfo.txt文件中。

  打开BAT脚本,修改网卡信息,即可。

  运行脚本,脚本将数据包文件发送出去。

  注意:总的发包数量等于每个线程的发包数量乘以线程总数。

  实验的数据包文件都是MSN消息。

具体代码请看附件。

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年05月18日 12:30:00


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (11)
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
2
上个月就搞好了,本想找时间再改改,写的更好一些,提供更丰富的功能。

可惜一直在马不停蹄的工作,没时间再改了。好在当时注释还比较充分。

希望对研究网络协议的朋友有帮助。
2009-5-18 16:57
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
3
打炮机,可以指定打炮数量作发包测试,看抓包程序的抓包率是多少?

我还把它做为诱雷弹。

比如假设有人想盗密码会专门分析含有Password关键词的数据包。你可以给他打上10000个数据包,让他抓去吧。
呵呵。  

一般协议分析根据目的端口判断是邮件还是QQ,MSN聊天。你可以大量发送指定目的端口的垃圾数据包。
让他抓去吧。
2009-5-18 22:18
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
4
另外这个程序中使用的API是一次发送一个数据包的。WinPCap 中有一次发送一组数据包的API,功能也很强大。有兴趣的朋友可以顺着学习一下。

在一般网络协议分析中往往以:源/目的IP和端口作为一次会话的标志。

使用打炮机可以产生大量的虚假会话,甚至一个数据包就是一个会话!足以对用来监视我们的系统形成非常严重的干扰!哼哼哼哼  

一次发送一组数据包伪装成会话,甚至可能击垮整个监视系统。后面继续讨论  
2009-5-18 22:35
0
雪    币: 48
活跃值: (11)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
没睡来膜拜··加百力大大``希望早一天明白这些东西``
2009-5-19 01:38
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
7


牧羊兄弟还是早点休息,今天还要放羊呢。

其实网络协议分析没有平时大家感觉的那么难。

听说成都这边又有一个IT从业者倒下了,大家保重身体,别给老板当炮灰。
2009-5-19 07:38
0
雪    币: 414
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
~好东西~不过我想歪了~感谢楼主的分享~顶~
2009-5-23 01:59
0
雪    币: 414
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
PW\PW.cpp(12) : fatal error C1083: Cannot open include file: 'pcap.h': No such file or directory
的确我没找到pacap.h这个文件~
2009-5-23 02:02
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
10
编译需要下载winpcap的开发库(不是运行库),然后链接时加上-lwpcap
http://www.winpcap.org/devel.htm
2009-5-23 10:59
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=木桩;629473]编译需要下载winpcap的开发库(不是运行库),然后链接时加上-lwpcap
http://www.winpcap.org/devel.htm[/QUOTE]

正解!

确实需要下载开发库,并且包含头文件并在连接时加上所需的lib库。
2009-5-24 18:45
0
雪    币: 414
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
原来如此~
2009-5-24 21:45
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
不错。学习了。
2009-5-26 21:47
0
游客
登录 | 注册 方可回帖
返回
//