saga's blog

突出重点,系统全面,不留死角

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  33 Posts :: 2 Stories :: 185 Comments :: 0 Trackbacks

公告

QQ:34O859O5

常用链接

留言簿(15)

搜索

  •  

积分与排名

  • 积分 - 209553
  • 排名 - 121

最新评论

阅读排行榜

评论排行榜

    自己刚刚写的,在win2k下运行正常,当然要先安装Winpcap3.1或其他版本.下载地址:http://www.winpcap.org/
    程序功能很简单,就是扫描内网活动主机,自己选择欺骗哪一台.或几台.使其数据流经你的本地主机,你就可以用截包工具如Ethereal截包分析.
     程序和代码下载地址:http://www.cppblog.com/Files/saga/arpsproof.rar
     注释比较详细,不理解之处可以与我研究探讨.
     编译的时候要注意设置!!!
                                                                           ----saga.constantine

posted on 2006-04-24 14:26 saga.constantine 阅读(10610) 评论(86)  编辑 收藏 引用 所属分类: Code

Feedback

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-06 16:25 龚超雄
为什么在windows xp下面就不可以执行你 的代码呢?
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 08:22 saga.constantine
@龚超雄
你安装Winpcap了吗??我安的是Winpcap3.1 我再到xp下试试
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 14:42 龚超雄
好的!我安装的也是winpcap3.1用的是vc++6.0总是不可以!你弄好了告诉我一下啊!先谢谢了!我的xp是sp2的!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 15:06 saga.constantine
@龚超雄
你是说你下载的那个代码不能编译连接还是我的下载包里的exe不能在你的系统上运行啊??
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 15:26 saga.constantine
@龚超雄
我刚刚在xp sp2下运行了arpsproof.exe 正常啊
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 15:49 龚超雄
你的那个.exe可以运行,那个代码也可以编译执行但是执行后只显示发送成功但是没有返回结果!没有扫描网络内的计算机啊!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 15:55 龚超雄
就是到了Packetsend succeed就没有了!你的那个exe文件可以得到预期的结构!不知道是什么原因!是不是要开启ip路由功能啊!或者windows xp sp2要安装基于NDIS的网络协议驱动什么的啊!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:23 龚超雄
不知道是什么原因啊!很郁闷!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:50 夜狼
你的代码什么编译不了啊,是不是还要进行配置?我已经加有iphlpapi.h和iphlpapi.lib了。但是还是编译不了,出现这样的错误c:\documents and settings\dj\sheji9.cpp(135) : error C2065: '_beginthreadex' : undeclared identifier
Error executing cl.exe.
为什么呀????
郁闷了!!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:50 saga.constantine
@龚超雄
你是说exe能正常运行,并执行!!而你编译出来的程序无法执行!!是吗??
那大概是你的编译有问题吧??  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:52 saga.constantine
那是因为你的编译选项里面要选多线程的run-time lib  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:53 夜狼
是的!
.exe可以运行,可是代码没能编译成功!!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:55 saga.constantine
@夜狼
编译设置是必须的!!不太难,知道了就不难,error C2065: '_beginthreadex' : undeclared identifier
Error executing cl.exe. 就是你的run-time lib 库没有选好
另外还需要wpcap.lib你有加吗??  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:55 夜狼
run-time lib 这东西能给我一份吗?谢谢了大侠!!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 16:59 龚超雄
那我是那里出问题了!反正就是运行了也没有结果!不能扫描啊!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 17:00 夜狼
那需要加什么编译配置这么多?你能说详细点吗?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 17:03 saga.constantine
@夜狼
这是你的v6.0里面的设置,你选工程->设置->c/c++在调到code generation
就会看到run-time lib 设置
我的代码里面有用到多线程,所以你要选Multithreaded的 有两个 看你是生成debug版的exe还是release的exe  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-08 17:28 saga.constantine
@夜狼
去winpcap的官方网下开发包!!  回复  更多评论
  

# 环境设置 2006-05-11 10:37 龚超雄
在windows xp sp2下面也可以很好地运行,就是要把vc++ 6.0设置好点,
building-setting-c/c++-category-codegeneration
下面的use runtime library改为debug multithreaded
下面的struct member aligment 改为2 bytes就可以了
在link里面加上wpcap.lib IPHlpApi.lib ws2_32.lib三个文件
就可以了!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-11 11:25 夜狼
XP下这样配置,运行成功!!顶上了!!
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-11 11:45 saga.constantine
use runtime library改为debug multithreaded生成的是debug版
release版就用multithreaded
IPHlpApi.lib在sdk里面 wpcap.lib上官网下开发包  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-31 15:48 文锋
大哥 你的QQ号是好多? 电话号码也行 我的毕业设计刚好需要你这部分代码 我编译的时候刚开始说没有IPHlpApi.h 下了以后在IPHlpApi.h里又有个头文件里面有很多错误 你用的是vc++ 6.0吗? 怎么看你的工程象在5.0下创的呢? 是不是版本冲突? 希望能和你详谈一下 小弟现在真的急用 可以的话RMB买你的程序  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-05-31 16:13 saga.constantine
@文锋
我的QQ不是写在公告了里面吗???你可以看到的啊!!
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-06-27 10:28 王飞
编译你的程序的时候出现下面的错误怎么处理?
fatal error C1083: Cannot open include file: 'pcap.h': No such file or directory.
为什么回找不到文件呢?wpcap3.1的下载包里面没有什么文件.VC++6.0添加Iinclude 时找不到指定的'pcap.h'.  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-06-27 10:30 王飞
急用!!请大大尽快解答  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-07-13 23:55 saga.constantine
@王飞
我有事好久没上网了,不好意思,现在问题解决了吗?
  回复  更多评论
  

# 发送包函数的问题 2006-10-18 23:00 汪洋小虾米
伪造arp包以后,系统是怎样根据源mac地址,和目的mac地址发送包的,我的意思for(k=0;k<6;k++)
{
eth.eh_dst[k]=0xff;
eth.eh_src[k]=myip->mac[k];
arp.arp_sha[k]=myip->mac[k];
arp.arp_tha[k]=0x00;
}
eth.eh_type=htons(ETH_ARP);
arp.arp_hdr=htons(ARP_HARDWARE);
arp.arp_pro=htons(ETH_IP);
arp.arp_hln=6;
arp.arp_pln=4;
arp.arp_opt=htons(ARP_REQUEST);
arp.arp_spa=myip->ip;
以上代码可以换成以下代码吗?
eth.eh_type=htons(ETH_ARP);
arp.arp_hdr=htons(ARP_HARDWARE);
arp.arp_pro=htons(ETH_IP);
arp.arp_hln=6;
arp.arp_pln=4;
arp.arp_opt=htons(ARP_REQUEST);
arp.arp_spa=myip->ip;
for(k=0;k<6;k++)
{
eth.eh_dst[k]=0xff;
eth.eh_src[k]=myip->mac[k];
arp.arp_sha[k]=myip->mac[k];
arp.arp_tha[k]=0x00;
}
两段代码只不过交换了顺序,我的问题是系统是怎样根据源mac地址,和目的mac地址发送包的,源mac地址和目的mac地址不是都是字符型的吗?系统怎样识别的
?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-10-23 11:28 saga.constantine
上面的这段代码应该是可以交换的。因为两段代码改变的变量是不一样的。
源mac地址和目的mac地址设置是字符类型但是对他的赋值都是像
eth.eh_dst[k]=0xff;
eth.eh_src[k]=0x0f;
arp.arp_sha[k]=0x0f;
arp.arp_tha[k]=0x00;
这样的,设置成字符是因为char的长度是一个字节。在构造包的时候用memcpy()函数进行内存拷贝就行了,而并不需要在意拷贝源地址定义的是什么类型。

我的自己看法,仅供参考!!:)

我现在上博客不多,要交流问题可以加我QQ:34085905.愿意广交朋友。  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2006-12-12 16:05
我的程序在屏幕输出 PacketSend succeed 就不往下走了,也就是说,程序或取不到自己网卡的mac值 郁闷中,如果谁能有解决这个问题的答案可以加我得QQ378079178  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-04-16 17:13 nellson
saga,你好,我在连接的时候显示:
LINK : fatal error LNK1104: cannot open file "pcap.lib"
但在网上搜不到pcap.lib请问如何解决,其它配置我已经按上面的说法配置好了,谢谢,我的QQ:30481895  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-04-17 17:32 Nellson
通过了,把pcap 改为 wpcap即#pragma comment(lib,"wpcap")即可,
code generator中设为Multithreaded, 2Bytes,Blend* _cdecl*, Link中加上wsock32.lib ws2_32.lib wpcap.lib即可。  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-04-27 11:43 saga
Nellson可能是我编的时候的小错误,不好意思 -----saga  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-04-30 10:48 jtg5
c:\program files\microsoft visual studio\vc98\include\ipexport.h(39) : error C2371: 'IN6_ADDR' : redefinition; different basic types
c:\program files\microsoft visual studio\vc98\include\ws2tcpip.h(68) : see declaration of 'IN6_ADDR'

你好,我编译了你的程序,出现上面2个错误,我上网搜了一下,说是你手工定义了那个结构。我想问一下这是怎么回事?谢谢!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-07 19:59 saga.constantine
你改过代码吗???我没有见过这个错误
@jtg5
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-13 10:28 calen3
楼主能把修改过的重新发布一下吗?
在编译的时候出现很多错误~~  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-13 16:25 guava
我也出现下列问题:
c:\program files\microsoft visual studio\vc98\include\ipexport.h(39) : error C2371: 'IN6_ADDR' : redefinition; different basic types
c:\program files\microsoft visual studio\vc98\include\ws2tcpip.h(68) : see declaration of 'IN6_ADDR'


ipexport.h里面也说明了不要和w2stcpip.h同时用。下面是来自ipexport.h里的说明:
//
// Duplicate these definitions here so that this file can be included by
// kernel-mode components which cannot include ws2tcpip.h, as well as
// by user-mode components which do.
//  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-19 10:51 saga
@calen3
我发的那个很多人都编译出来可啊
应该没有问题啊
只是库和设置的问题啊

  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-19 10:53 saga
这个问题 我还真的不知道是怎么回事
程序编的时间比较久了
关键是我没有遇到过这样的情况
所以不知道怎么去帮你们解答
@guava
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-23 17:48 雪狼
link1104:cannot open files pcap.lib 大家看出现这个问题怎么回事啊?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-23 17:50 雪狼
pacp_next_ex:undeclared identifier 大家看出现这个问题怎么回事啊?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-26 00:16 guava
编译通过了,先贴出解决的代码
#include <stdlib.h>
#include <stdio.h>
#define _WSPIAPI_COUNTOF
#include <winsock2.h>
#include <pcap.h> //winpcap的头文件
#include <process.h> //多线程编程的头文件
#include <windows.h>
#include <Iphlpapi.h> //提取网关用的头文件



  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-26 09:04 雪狼
哈,终于可以运行了
但是怎样能在不退出程序的情况下,再重新扫描和欺骗,还要在程序里怎么改一下?
还有在连在HUB的局域网内怎么打开程序进行欺骗时,别的电脑还能收到数据,但我一关闭程序它们又收不到数据了?百思不得其解   回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-27 11:42 saga
我也看不懂你的几个头,解释详细点可以吗?谢@guava
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-27 11:49 saga
这个应该不难啊!加个输入控制,比如输入rescan就在次进行扫描。把代码在组织一下就可以了,后面一个问题我也遇到过,情况不太一样,就是结束欺骗后不能马上结束程序,不然交换网中被欺骗机器会出现短时上不了网的情况。你可以再研究一下,雪狼!@雪狼
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-28 15:46 雪狼
那怎样才能使运行程序时,让被欺骗机器出现上不了网?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-29 11:14 雪狼
晚上我改了改不行啊,那个转发线程怎样停止啊?
我是想运行程序后能够有两个选择,一个是一边嗅探一边转发;另一个选择是只嗅探不转发。希望能帮我实现一下
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-29 15:17 雪狐
雪狼兄
link1104:cannot open files pcap.lib 大家看出现这个问题怎么回事啊?
pacp_next_ex:undeclared identifier 大家看出现这个问题怎么回事啊?

这两个问题你是怎么解决的?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-29 15:33 雪狐
出现错误error C2371: 'IN6_ADDR' : redefinition; different basic types此时,你只需要将该workspace选中,然后clean,再将INCLUDE中PSDK放到最前面即可
@guava  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-30 15:41 雪狐
link1104:cannot open files pcap.lib 大家看出现这个问题怎么回事啊?

忍不住要自问自答,是不是把
#pragma comment(lib,"pcap")
改成
#pragma comment(lib,"wpcap")

至少我改过之后连接就通过了,不报错了。
不知道这样改会不会产生什么副作用,请雪狼或者楼主出来个解释,谢谢:)  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-05-30 17:08 saga
那个好像是这样改改就行,我也知道这个问题,我不知道当时我是这么搞成pcap的了,改成wpcap可以应该是没有问题的。@雪狐
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-02 11:24 雨辰
我现在出现的错误是,Cannot open include file: 'pcap.h': No such file or directory
怎么修改呢?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-05 15:19 雪狼
需要如何把debug里的exe转换成可单独运行的程序  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-10 15:17 calen3
我遇到的问题比较奇怪,已经设置了多线程,装了winpcap和SDK,
cannot convert parameter 3 from 'const unsigned char ** ' to 'unsigned char ** '
unable to recover from previous error(s); stopping compilation

目标指向了
while((k=pcap_next_ex(slecadopt,&pkt_header,(const u_char**)&pkt_data))>=0)
不知道怎么回事?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-10 16:25 saga
如果改了代码 就检查下改过的地方
应该是语法错误
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-11 09:52 雪狐
我也遇到过这个问题,把强制类型转换中的const去掉,可以编译通过.  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-12 17:34 雪狼
想请你看一下http://space.codepub.com/28058/viewspace-4990.html
里的arp_cheat_sniff_v2.1源文件要怎样配置啊?我怎么打不开arp.dsw文件呢?我不知道怎样上传给你,麻烦你了.谢谢!
  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-13 14:59 雪狼
怎样修改以前那个程序能把程序中所要转发的数据显示到屏幕上或保存下来?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-14 19:29 arp.spoofer
不用程序中的转发函数也能实现路由转发。只要打开注册表中的路由转发项就可以了HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\IPEnableRouter == 0x1

如果要看转发的IP包,直接调用Pcap_next_ex()或者Pcap_loop()函数,然后把内容或包长度等信息显示在屏幕上就行了。
winpcap的帮助文档里第3第4个例程对你有帮助。
@雪狼  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-18 15:53 雪狼

好,谢了!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-27 18:38 学狐
我遇到一个奇怪的问题。在扫描的时候只显示出我的mac地址然后程序就不继续下去了,scanning没有出现在屏幕上,当然也没打印出网络中的主机。Debug时,程序到WaitForSingleObject()这个函数就停住,F10也不往下跳了。这是为什么?有没有可能和网络结构有关。我所在的网络是固定IP,我自己设置IP:10.10.143.69掩码:255.255.255.0网关:10.10.143.20DNS服务器:202.119.230.8。急盼指教,谢谢!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-27 20:39 雪狐
知道是什么问题了,不过仍然很奇怪!
/*找到我的ip*/
myip->ip=((struct sockaddr_in *)d->addresses->next->addr)->sin_addr.s_addr;

在主程序中的这行,被添加了->next。单步调的时候发现这样添加就通了。但是在其他机器上不添加可以通过,我觉得可能是机器的原因了。 Anyway!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-06-28 17:15 saga
雪狐你专研的很多啊 加油 嘿咻  回复  更多评论
  

# re: [原创]关于装好VC++ 6.0后遇到的问题 2007-07-21 23:20
我的系统是VISTA.刚装的VC++ 6.0(企业版),提示成功安装了.但是打开编了个最简单的"hello world",调试成功了
但是连接时出现下面的代码,请大虾们帮忙看下:
--------------------Configuration: helloWorld - Win32 Debug--------------------
Linking...
LINK : fatal error LNK1104: cannot open file "Debug/helloWorld.exe"
执行 link.exe 时出错.

helloWorld.exe - 1 error(s), 0 warning(s)

这是为啥呢?
而且我发现文件夹里没有出现Dubeg文件  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码[未登录] 2007-07-25 08:47 初学者
我下载了此程序后,用VC++6编译出现:
C:\arpsproof.cpp(132) : error C2065: '_beginthreadex' : undeclared identifier
错误,请指点  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-07-25 09:39 雪狐
building-setting-c/c++-category-code generation
下面的use runtime library改为debug multithreaded
下面的struct member aligment 改为2 bytes
在link里面加上wpcap.lib IPHlpApi.lib ws2_32.lib三个文件

这个在上面的帖子里有给出过,可能是这样吧?!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-07-26 11:01 saga
@初学者
雪狐说的是可对的!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-09-13 13:19 abc
我是直接用VC6打开这个文件,然后编辑,系统提示需要自动生成工程文件,我就按照系统提示自动生成了,然后在工程里面添加了两个路径
如果我在工程里面添加了
C:\wdq\WpdPack\Include,c:/Program Files/Microsoft Platform SDK/include
编译,出现错误:
c:\program files\microsoft platform sdk\include\wspiapi.h(45) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
c:\program files\microsoft platform sdk\include\wspiapi.h(45) : error C2265: '<Unknown>' : reference to a zero-sized array is illegal
去掉c:/Program Files/Microsoft Platform SDK/include,将他放在全局目录里面,会出现错误:
c:\program files\microsoft platform sdk\include\ipexport.h(39) : error C2371: 'IN6_ADDR' : redefinition; different basic types
c:\program files\microsoft visual studio\vc98\include\ws2tcpip.h(68) : see declaration of 'IN6_ADDR'
c:\program files\microsoft platform sdk\include\iphlpapi.h(183) : error C2065: 'PMIB_ICMP_EX' : undeclared identifier
c:\program files\microsoft platform sdk\include\iphlpapi.h(183) : error C2146: syntax error : missing ')' before identifier 'pStats'
c:\program files\microsoft platform sdk\include\iphlpapi.h(183) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft platform sdk\include\iphlpapi.h(185) : error C2059: syntax error : ')'
能帮忙解决下不?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-09-13 13:35 abc
直接注释掉wspiapi.h中出错的那行代码以及其前面的那行代码,可以编译通过并执行,但是这种解决方法不太科学啊,有没有更好的解决方法?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-09-13 13:35 abc
@abc
直接注释掉wspiapi.h中出错的那行代码以及其前面的那行代码,可以编译通过并执行,但是这种解决方法不太科学啊,有没有更好的解决方法?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-11-04 11:36 流氓兔
saga博主 很高兴能看到你的代码 对我帮助很大 不过有一点问题好像 其中arpsproof代码里的unsigned int _stdcall transmitandsniffer(void *x)这个函数里有两句*(unsigned long *)(pkt_data+30) 代码第483和493行,这里“+30”是不是有一点问题?是什么意思啊?个人觉得应该改成“+38”,即截到包里面的目的ip地址。你看是不是应该这样?
另外不知道你有没有观察过这个程序的运行,我在运行arpsproof同时用earthreal观察网卡所截并转发的包。我的试验环境是3台电脑:a向b不断发ip包(自始至终不停止,我们无需管a),我在c上运行arpsproof欺诈b,让a发给b的包先由网管发到我这里,然后我再发给b,并在c上运行eartheal观察。但我欺诈b后也就是输入b后,earthreal在c上并没有截到a发给b的ip包,就截到c为了欺诈b而不停发给b和网关的arp欺诈包,这点很纳闷,我觉得应该发了几次欺诈包以后,b和网关应该都被欺诈了,a到b的包应该被网关转发到c这里了,可就是没有一个包。奇怪的问题并没有结束!当我输入-b,也就是停止对b欺诈后,c上先截到几个c到b和网关的欺诈恢复包,这个没问题;可之后c就狂收到a发给b的ip包,经过1,2分钟后又收不到了,一切恢复正常了。这个相当奇怪,之前欺诈时c收不到a到b的包,现在停止欺诈了反而像欺诈成功一样,不过就只维持1,2分钟时间。经我分析是
if(pcap_sendpacket(slecadopt,rsendbuftogate,42)!=0)
这句代码导致的问题,因为另一句注释掉仍然会发生这情况。但这句恢复语句没任何问题,到底是什么原因呢??望博主和大家感兴趣的话能一起来分析一下,这个问题我觉得相当奇怪,但也很有意思。大家搞明白了后肯定受益匪浅!!
我的mail:terrell_tzh@hotmail.com qq:185849570  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2007-12-04 19:53
恩,我也遇到error C2011: 'in6_addr' : 'struct' type redefinition这个问题,能帮助解决一下么?真的很奇怪,希望高人指点一下啊 小弟刚学习winpcap啊,对这些不是太熟悉  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2008-05-07 12:30 在乎谁
为什么运行时有错误啊  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2008-05-07 12:30 在乎谁
为什么运行时候有错误啊  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2008-05-20 17:50 暖暖
首先谢谢您的帮助,我运行了您的可执行文件,没错,原代码编译的时候有一些错。我总结一下自己的修正步骤,希望楼下的朋友看了后有些借鉴:


1、从winpcap 的官方网站下winpcap, 安装;
2、从winpcap 的官方网站下WpdPack,解压后,产生几个文件夹,在vc tools/options/directories/include files/ 加入 WpdPack解压后产生的include;在vc tools/options/directories/library files/加入 WpdPack解压后产生的lib
3、building-setting-c/c++-category-code generation
下面的use runtime library改为debug multithreaded
下面的struct member aligment 改为2 bytes
在link里面加上wpcap.lib IPHlpApi.lib ws2_32.lib三个文件
4、从window官方网站下windows platform sdk ,安装
5、在vc tools/options/directories/include files/ 加入 c:/program files/microsoft platform sdk/include;vc tools/options/directories/library files/加入 c:/program files/microsoft platform sdk/lib
6、将c:/program files/microsoft platform sdk/include/Iprtrmib.h 考到
C:\Program Files\Microsoft Visual Studio\VC98\Include\下,覆盖原来的Iprtrmib.h
7、将一个头文件里的N6_ADDR' 结构定义注释掉
8、#pragma comment(lib,"pcap")
改成
#pragma comment(lib,"wpcap")

重新编译,基本上就没问题了,我折腾半天出来的。  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2008-05-21 14:31 暖暖
博主 :您的程序结束欺骗后,被欺骗的 网关arp -a 能够看到恢复的ip地址和mac,但是网关ping不通这些ip,要过好一会才能ping通,这是为什么呀。网关是windows server 2003的机器,我的需求是要完成全不能中断网关同其它机器间的通讯,嗅探机器要是个透明的第三者,但现在嗅探机器退出的时候有影响,很苦恼呀 。  回复  更多评论
  

# re: [ԭ��]��Winpcap��д��һ���ڽ�������ʵ��arp��ƭ�Ĵ��� 2008-05-24 20:27 sd
���ˣ��������  回复  更多评论
  

# re: [ԭ��]��Winpcap��д��һ���ڽ�������ʵ��arp��ƭ�Ĵ��� 2008-05-24 20:28 sd
错了,程序本身就是错的  回复  更多评论
  

# re: [ԭ��]��Winpcap��д��һ���ڽ�������ʵ��arp��ƭ�Ĵ��� 2008-05-24 20:33 sd
可以看出,这个程序被改过了好多,这个程序本身有一个sniffer功能的,就是完成中间人攻击的。就是由sinnfferandtranmmit完成的,但是主人可能由于某方面的原因没有完成他,或者修改他
还有就是,在给数据包赋值上,没有考虑字节对齐问题,会导致数据包构造是错误的,最终可能导致内存泄漏。
总体思想是好的,不过问题太多,建议自己加以修改。我已经修改好了
通过ethereal抓包,分析正确~!  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2008-05-25 00:27 saga
@暖暖
结束欺骗后 不要立即关闭程序 应该就行 这个问题我也知道 但是原因不是很清楚  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2008-11-06 14:08 test
#pragma pack(push)
#pragma pack(1)
ethdr定义
arphdr定义
#pragma pack(pop)  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码[未登录] 2008-12-26 22:04 1
error C2065: '_beginthreadex' : undeclared identifier
也不知道你是怎么编译通过的  回复  更多评论
  

# 求救 2009-05-15 19:56 NN
fatal error C1083: Cannot open include file: 'pcap.h': No such file or directory.
为什么回找不到文件呢?wpcap3.1的下载包里面没有什么文件.VC++6.0添加Iinclude 时找不到指定的'pcap.h'. 回复 更多评论   回复  更多评论
  

# 求救 2009-05-15 20:05 NN
wpcap3.1的下载包里面没有什么文件,VC++6.0调试时,
fatal error C1083: Cannot open include file: 'pcap.h': No such file or directory
执行 cl.exe 时出错.

a2.exe - 1 error(s), 0 warning(s)

急得很,网楼主解答,谢谢!!  回复  更多评论
  

# 求救 2009-05-15 20:07 NN
请问一下啊,wpcap3.1的下载后,还需要自己编写pcap.h吗?

谢谢  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2010-02-20 18:26 laohou
无法定位程序输入点PacketGetReadEvent于动态链接库packet.dll上怎么办?  回复  更多评论
  

# re: [原创]用Winpcap编写的一个在交换环境实现arp欺骗的代码 2010-05-29 22:27 梦郎
sproof()函数中我想问问
for(k=0;k<6;k++)
{
eth.eh_dst[k]=gateip->mac[k];
eth.eh_src[k]=myip->mac[k];
arp.arp_sha[k]=myip->mac[k];
arp.arp_tha[k]=gateip->mac[k];
}
eth.eh_type=htons(ETH_ARP);
arp.arp_hdr=htons(ARP_HARDWARE);
arp.arp_pro=htons(ETH_IP);
arp.arp_hln=6;
arp.arp_pln=4;
arp.arp_opt=htons(ARP_REPLY);
arp.arp_spa=spip->ip;
arp.arp_tpa=gateip->ip;

memset(sendbuftogate,0,sizeof(sendbuftogate));
memcpy(sendbuftogate,&eth,sizeof(eth));
memcpy(sendbuftogate+sizeof(eth),&arp,sizeof(arp));

for(k=0;k<6;k++)
{
eth.eh_dst[k]=spip->mac[k];
eth.eh_src[k]=myip->mac[k];
arp.arp_sha[k]=myip->mac[k];
arp.arp_tha[k]=spip->mac[k];
}
arp.arp_spa=gateip->ip;
arp.arp_tpa=spip->ip;

memset(sendbuftosp,0,sizeof(sendbuftosp));
memcpy(sendbuftosp,&eth,sizeof(eth));
memcpy(sendbuftosp+sizeof(eth),&arp,sizeof(arp));

for(k=0;k<6;k++)
{
eth.eh_dst[k]=spip->mac[k];
eth.eh_src[k]=gateip->mac[k];
arp.arp_sha[k]=gateip->mac[k];
arp.arp_tha[k]=spip->mac[k];
}
arp.arp_spa=gateip->ip;
arp.arp_tpa=spip->ip;

memset(rsendbuftosp,0,sizeof(rsendbuftosp));
memcpy(rsendbuftosp,&eth,sizeof(eth));
memcpy(rsendbuftosp+sizeof(eth),&arp,sizeof(arp));

for(k=0;k<6;k++)
{
eth.eh_dst[k]=gateip->mac[k];
eth.eh_src[k]=spip->mac[k];
arp.arp_sha[k]=spip->mac[k];
arp.arp_tha[k]=gateip->mac[k];
}
arp.arp_spa=spip->ip;
arp.arp_tpa=gateip->ip;

memset(rsendbuftogate,0,sizeof(rsendbuftogate));
memcpy(rsendbuftogate,&eth,sizeof(eth));
memcpy(rsendbuftogate+sizeof(eth),&arp,sizeof(arp));
前两个ARP应答是欺骗,后面两个ARP应答是正确的那既不是多余,如果是这样的话,那删掉好了  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理