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

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

2009-5-18 16:55
12566
【文章标题】: 基于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

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞7
打赏
分享
最新回复 (11)
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-5-18 16:57
2
0
上个月就搞好了,本想找时间再改改,写的更好一些,提供更丰富的功能。

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

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

我还把它做为诱雷弹。

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

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

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

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

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


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

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

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

正解!

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