WinPcap编程(一)】的更多相关文章

转自:http://www.cnblogs.com/blacksword/archive/2012/03/19/2406098.html WinPcap可能对大多数人都很陌生,我在这里就先简单介绍一下它是什么吧~~这里我们先看一下来自维基百科中对于pcap的解释吧! In the field of computernetwork administration, pcap (packet capture) consists of an application programming interfa…
0. 这一次具体讲抓包的两种方法. (建议)清除ARP表,最好自己写个批处理命令.快一点. 1.0 抓包步骤 步骤很简单:先打开适配器列表 --> 选择适配器 --> 通过遍历链表的方式到达你选择的适配器位置 --> 打开设备 --> 开始抓包. 每一个步骤都是一个函数.了解步骤,后面就好办. 首先,了解一个数据类型pcap/pcap_t.它代表一个打开的设备,理解成它就是适配器就行(实际上是这个适配器的描述符).这个结构体对用户来说是不透明的,它通过wpcap.dll提供的函数,…
之前用winPcap做过一个拦截网络数据包的程序,作为当时的网络编程课程的课程设计,现在重新学习一下. 工具:codeblocks 要用到的一些东西:WinPcap.exe与winPcap一些库文件 还有winsock库 1.配置这些库文件: 前两个是winPcap的文件,我直接将它们放到MinGW的目录了. 最后一个是网络编程需要使用的winsock库 2. 如上,因为将winPcap的库文件全部放到了winGW目录下,方便管理. 附: winsock库文件下载地址:http://downlo…
下面,我将以 乱世隋唐页游 为例,通过编码获取这里面的数据. 游戏图: 我是乱世隋唐的网址是:www.917st.com 这个是官网网址的服务器地址.  42.62.0.14 我玩的游戏服是84区.网址是:www.s84.917st.com 我所在区的服务器地址是: 42.62.0.7 winpcap里有一个过滤器字符串.凡是发送给这个服务器的内容,我都要获取到.我们需要设置它为:dst host 42.62.0.7    表示目标主机地址是42.62.0.7 如果我要获取从这个服务器发来的数据…
0. 按着文档顺序写的. 开发环境:win10+VS2013. 配置WinPcap环境就不多说.直接给网址:http://blog.sina.com.cn/s/blog_57432f380101qh3n.html 内容大多是函数解释+碰到的问题的解决方案.学习&&警示. 1.获取适配器列表 获取适配器的目的是:获取本机有哪些适配器,便于之后选择用哪个适配器抓包. 首先,先了解一个数据类型pcap_if/pcap_if_t,这是一个链表结构,用来存储本机的所有适配器. struct pcap…
1.过滤器设置 设置过滤器,得到你想要的哪种类型的包.Like WireShark. 过程:编译过滤器,然后设置过滤器.直接上参考文档的代码: if (d->addresses != NULL) /* 获取接口第一个地址的掩码 */ netmask=((struct sockaddr_in *)(d->addresses->netmask))->sin_addr.S_un.S_addr; else /* 如果这个接口没有地址,那么我们假设这个接口在C类网络中 */ netmask=…
计算机网络课设要求用WinPcap写对ARP包的接收与发送. 所以学了一下WinPcap的内容. 参考的博客: http://blog.csdn.net/htttw/article/details/7521053 http://www.cnblogs.com/yingfang18/archive/2010/11/27/1889596.html http://www.cnblogs.com/wangshuo/archive/2011/07/23/2114680.html [表示感谢] 参考文档地址…
/* 程序功能: 1.构造arp包,并发送.程序参数顺序:源IP.目的IP.mac地址.flag 2.获取网络中的ARP数据包,解析数据包的内容.程序参数:日志文件名 winpacp中文技术文档(基本是英文的):http://www.ferrisxu.com/WinPcap/html/index.html */ 一.构造arp包 在构造之前先了解一下arp包的结构,先从网上找了张图 从图中可以看出以太网首部占14字节,以太网ARP字段占28字节.其中op字段为操作类型,1表示ARP请求.2表示A…
EAP SOCKET Implement Mentohust 时间:20161115,大二上 ## 准备. 什么是 EAP 协议 ? WIKI : https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol RFC : https://tools.ietf.org/html/rfc3748 中文 : http://blog.ptsang.net/details_about_802_1x_in_campus_authentica…
这一次要分析的实例程序跟上一讲非常类似(“打开适配器并捕获数据包”),略微不同的一点是本次将pcap_loop()函数替换成了pcap_next_ex()函数.本节的重点也就是说一下这两个函数之间的差异.我们知道pcap_loop()函数是基于回调的原理来进行数据捕获的,如技术文档所说,这是一种精妙的方法,并且在某些场合下,它是一种很好的选择.但是在处理回调有时候会并不实用,它会增加程序的复杂度,特别是在多线程的C++程序中.而对于pcap_next_ex()函数而言,可以通过直接调用它来获得一…
在贴源码之前先介绍一个将要用到的很重要的函数--pcap_open(),下面是pcap_open()在remote-ex.h中的声明: pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf); 第一个参数不用多说,它表示的是设备的名称.在获取适配器链表后,通过返回数据域name即可知道设备的名称. 第二个参数制定…
首先要读一下这一页的东西:http://www.winpcap.org/docs/docs_412/html/group__wpcapsamps.html 可以结合中文版本看http://www.ferrisxu.com/WinPcap/html/group__wpcapsamps.html 创建一个使用 wpcap.dll 的应用程序 用 Microsoft Visual C++ 创建一个使用 wpcap.dll 的应用程序,需要按一下步骤: 在每一个使用了库的源程序中,将 pcap.h 头文…
创建一个使用 wpcap.dll 的应用程序 用 Microsoft Visual C++ 创建一个使用 wpcap.dll 的应用程序,需要按一下步骤: 在每一个使用了库的源程序中,将 pcap.h 头文件包含(include)进来. 如果你在程序中使用了WinPcap中提供给Win32平台的特有的函数, 记得在预处理中加入WPCAP 的定义. 如果你的程序使用了WinPcap的远程捕获功能,那么在预处理定义中加入HAVE_REMOTE.不要直接把remote-ext.h直接加入到你的源文件中…
这里需要特别强调的一个数据结构是pcap_t,它相当于一个文件描述符,代表一个已经打开的设备.我们对这个设备进行操作,就是对这个文件描述符进行操作. 首先是打开一个已知的设备,使用pcap_open()这个函数,其原型如下: pcap_t * pcap_open (const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf) 1.source是我们所要打…
EAP SOCKET Implement Mentohust 时间20161115 对于EAP协议不了解,可参考上一篇随笔. 通过抓包分析校园网的锐捷登录流程,我在上一篇随笔中实现了EAPSOCKET这个类, 准备 原因 周末尝试了一下windows(自带?)的虚拟机Hyper-V(它的虚拟机好像必须通过虚拟机的网卡才能上网),多次尝试后蛋疼的锐捷疯狂断网,于是我很气啊!!!!!! 但是那天觉得破解锐捷不如自实现锐捷认证,于是有了以下内容. 实现 能看出锐捷的验证方式是802.1x的EAP协议,…
显示适配器详细信息 先贴上代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include "pcap.h" #include <winsock2.h> typedef struct sockaddr_in sockad; /* 从tcptraceroute数字IP地址转换为字符串 */ #define IPTOSBUFFERS 12 char *iptos(u_…
设置过滤器要用到两个函数,一个是pcap_compile(),另一个是pcao_setfilter().他们的函数原型如下所示: int pcap_compile (pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 netmask) 1.p是一个打开的网络设备的描述符. 2.fp是一个指针,用来存储一个编译好的过滤码.我们需要提前设置 struct bpf_program fcode 在这里使用. 3.…
这里用到的数据结构是pcap_dumper_t,这也是一个相当于文件描述符的东西,我们在用的时候先指定pcap_dumper_t *dumpfp; 使用两个函数来存储网络数据,一个是pcap_dump_open(),另一个是pcap_dump().先用前一个函数打开一个文件,然后用后一个函数把网络数据写到这个文件中.最后用pcap_dump_close()这个函数把这个文件关闭. 函数原型如下: pcap_dumper_t * pcap_dump_open (pcap_t *p, const c…
pcap_if_t是一个interface数据结构,表明网络接口的信息.网络接口就是interface,就是我们用来上网的设备,一般为网卡,还有一些虚拟网卡也算作这样的接口.它的结构如下: struct pcap_if { struct pcap_if *next; char *name; char *description; struct pcap_addr *addresses; u_int flags; }; typedef struct pcap_if pcap_if_t; 其中的str…
大家好,本次我们须要完毕的任务是: 完毕两台主机之间的数据通信(数据链路层) 仿真ARP协议获得网段内主机的MAC表 使用帧完毕两台主机的通信(Hello! I'm -) 声明:本文章的目的是为大家的Winpcap编程带来一定的借鉴,希望对大家的课程设计有一定的帮助.总之,我相信,大家看了前几篇 Winpcap 编程基础知识,再加上这篇文章的解说,一步一步做下来,相信你能成功的. P.S. 对Winpcap编程的基础知识有一定了解的就不用再去费工夫学习咯.我也是一点一点学习的.在此提供给大家一个…
arp欺骗->arp响应 ARP 缓存中毒(ARP欺骗) arp传送原理在于主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址:收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间. 攻击者可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗. arp欺骗之所以有效,是因为特意构造的ARP数据包使两台主机相信它们是在互相通信,而实际上它们是在与一个中间转发数据包的第…
获取设备列表 int pcap_findalldevs_ex ( char * source, //The 'source' is a parameter that tells the function where the lookup has to be done and it uses the same syntax of the pcap_open(). //This source will be examined looking for adapters (local or remote…
[创建时间:2015-08-27 22:15:17] NetAnalyzer下载地址 经过前两篇的瞎扯,你是不是已经厌倦了呢,那么这篇让我们来点有意思的吧,什么,用C#.不,这篇我们先来C++的 Winpcap开发环境配置 完成了对Winpcap的介绍,什么,你没看到Winpcap的介绍,左转,百度(其实,真的是不想复制).我们就需要做一点有用的事情,比如写一个简单的数据采集工具.当然在此之前,我们需要配置Winpcap的开发环境. (1) 运行环境设置 Win32 平台下Winpcap应用程序…
使用WinPcap编程 创建一个使用 wpcap.dll 的应用程序 用 Microsoft Visual C++ 创建一个使用 wpcap.dll 的应用程序,需要按以下步骤: 在每一个使用了库的源程序中,将 pcap.h 头文件包含(include)进来. 如果你在程序中使用了WinPcap中提供给Win32平台的特有的函数, 记得在预处理中加入WPCAP 的定义. 如果你的程序使用了WinPcap的远程捕获功能,那么在预处理定义中加入HAVE_REMOTE.不要直接把remote-ext.…
用Winpcap编程构造ARP包选择网卡并发出,遇到若干问题,学到了许多新知识,但是有的还尚未解决,在这里记录下没解决的和解决的问题. 先来看下ARP协议的格式,ARP字段有28个字节,发到以太网中还要加上14字节的以太网首部和4字节的FCS尾部,一共是28+14+4=46字节,以太网帧的最小长度为64字节,所以还要在尾部之前填充18个字节. 依据此原理我用winpcap编程实现了构造发送ARP包的源程序,并用Wireshark抓到了构造的ARP包,长度为64字节. 但是我在局域网的环境下抓包发…
注:源码等等的我不会全然公开的,此篇文章写出来为大家的网络编程或者课程设计提供一定的思路.. 好,本次我们须要完毕的任务是: 完毕两台主机通过中间主机的数据通信(网络层) 添加基于IP地址的转发功能 添加网络层封装 事实上最基本的就是基于IP地址的转发功能,网络层的封装事实上我们在0基础功能中就已经做好了. 首先,实验的思路是A通过中间主机B向C发送数据.那么B则作为一个路由器,B要监听两个网卡,一个网卡发来的数据通过还有一个网卡发出去. 示意图例如以下: A--------->B1===B2-…
好.之前说了那么多.最终到了,我们能够操刀的时候了. 在对ARP协议编程前.我们必需要能控制网络适配器(网卡).这个部分就是驱动! "我们要编写网卡驱动?",对,可是,至少我们现阶段不须要. 网络上有写好的驱动和开发包.我们拿来就能够用. 我这里使用的是winpcap的驱动以及开发包,因此我们首先要安装和搭建我们的编程环境: 1.下载winpcap驱动. 假设是安装了wireshark的话,它就自己主动帮我们装了winpcap驱动.(wireshark是基于winpcap开发的) ht…
Go简介 Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性. 语法类似C/C++,但是又带有一点python的味道 其中个人认为最出色的特点就是他的包管理,你可以在GoDoc.Go Search上找到非常多有用的包以及文档 同时只需执行 go get path ( e.g. go get https://godoc.org/github.com/google/gopacket)就可以将包下载到本地 gopacket简介 gopacket是googl…
起因 不知道从什么时候开始,同事开始在飞秋上发闪屏振动了,后来变本加厉,成了每日一闪.老闪回去也比较麻烦,作为程序猿呢,有没有什么偷懒的办法呢?(同事负责用户体验,不大懂编程).然后尝试了以下思路: UI自动化 利用UISpy查看飞秋聊天窗口,悲催的发现找不到发送闪屏振动的按钮. 模拟鼠标事件 准备使用mouse_event发送鼠标事件来模拟闪屏振动的按下.但是一想,每次闪屏振动按钮所在的位置不一样,要是移动窗口或者改变窗口布局,都得重新设置坐标,麻烦,遂弃之. 伪造网络报文 以前就知道WinP…
许多人习惯于让Outlook记住密码,收邮件时便不必每次都输入邮箱密码,一切让Outlook代劳.但时间一长,马虎的人会把自己的邮箱密码忘记,这样就无法重新设置或者登录Web界面收取邮件了.Outlook绝对不会告诉你邮箱的密码是多少,即使你找到了注册表中Outlook存储帐户和密码信息的键值,由于密码信息都是加密存储的,你还是无法提取密码.我们的对策就是针对邮箱服务中安全机制最薄弱的环节采取行动…… 众所周知,POP3协议本质上是一种明文协议,也就是说,虽然Outlook本地存储的密码是加密的…