首页 > MFC开发 > 基于WinPcap开发嗅探器程序

基于WinPcap开发嗅探器程序

这是我上课的一个实验,基于WinPcap开发一个简单的嗅探器,代码写的很一般,Hard Code Everywhere! 当然有兴趣的也可以下下来看一下。下面简单介绍下开发环境的搭建以及中间需要用到的一些编程要点。

一、实验环境构建
本次实验环境为Visual Studio 2010专业版 + WinPcap 4.1.2 + WinPcap 4.1.2 Developer’s Pack;
安装好WinPcap后,解压开发包文件WpdPack_4_1_2.zip,并把下面的Include文件夹以及Lib文件夹复制到工程目录下,配置工程设置,为“附加包含目录”添加Include文件夹相对路径,为“附加库目录”添加Lib文件夹相对路径,同时给“附加依赖项”添加“Packet.lib”、“wpcap.lib”选项,给“预处理器定义”添加“HAVE_REMOTE”、“WPCAP”选项,在stdafx.h头文件中增加对pcap.h头文件的包含,这样整个开发环境就配置好了,而且源代码可以在其他电脑上编译,不必再次安装WpdPack开发包以及设置头文件和库文件的路径。

二、WinPcap数据包嗅探框架
WinPcap开发包提供了众多操作方便的函数,在总结数据包嗅探框架之前,先要理解这些常用函数的意义并熟悉其使用方法,常用的函数有:

  • 用于获取本机设备列表的pcap_findalldevs_ex函数
  • 用于打开设备的pcap_open函数,可以指定为混杂模式打开
  • 用于编译数据包过滤器的pcap_compile 函数
  • 用于设置数据包过滤器的pcap_setfilter 函数
  • 用于从设备读取数据包的pcap_netx_ex 函数
  • 用于关闭设备的pcap_close 函数(参数为pcap_open 返回值)
  • 用于释放设备列表的pcap_freealldevs 函数(对应pcap_findalldevs_ex)

WinPcap Sniffer Framework

[WikiPedia]混杂模式(Promiscuous Mode)是计算机网络中的术语。是指一台机器的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。
一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。网卡的混杂模式一般在网络管理员分析网络数据作为网络故障诊断手段时用到,同时这个模式也被网络黑客利用来作为网络数据窃听的入口。在Linux操作系统中设置网卡混杂模式时需要管理员权限。在Windows操作系统和Linux操作系统中都有使用混杂模式的抓包工具,比如著名的开源软件Wireshark。

三、嗅探器开发
本嗅探器拥有三个线程:

  • 主 线 程:界面线程,负责界面处理,主程序流程控制;
  • 捕获线程:负责读取流经设备的数据包,并存储到全局的vector中;
  • 显示线程:负责从全局的vector中读取数据包并显示到主界面。

嗅探器的详细流程图如下图所示:
基于WinPcap的嗅探器流程图

四、需要注意的地方
必须说的几点:

  • 线程是分装好的,从别的工程里面抠出来的,具体作者不详;
  • 解包主要就是注意定义好各个结构,尤其要注意大端小端格式和网络格式(会影响到结构体的定义,尤其是位域部分);
  • 数据包存储与全局的vector变量中,这里只有一个线程进行写操作,所以未加锁;
  • 支持数据包格式:TCP/UDP/ARP/ICMP/IGMP,时间不够,ICMP / IGMP因版本过多未做详细解析;
  • 支持简单的IP / 端口地址过滤(捕获过滤);
  • 16进制编辑器也是从别的工程抠出来的,[PEDIY]原帖,改了个小Bug,计算滚动条范围时不能直接整除,如果有余数还需要加1;

关于结构体的定义,以TCP为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct TcpHeader
{
	unsigned short nSrcPort;		// 原端口号
	unsigned short nDstPort;		// 目的端口号
	unsigned long nSeqNum;			// 序列号
	unsigned long nAckNum;			// 确认序列号
	unsigned char rReserved1 : 4;		// 保留
	unsigned char nHeaderLen : 4;		// 头部长度, 实际需要乘以4
	unsigned char bFin : 1;			// FIN
	unsigned char bSyn : 1;			// SYN
	unsigned char bRst : 1;			// RST
	unsigned char bPsh : 1;			// PSH
	unsigned char bAck : 1;			// ACK
	unsigned char bUgr : 1;			// UGR
	unsigned char rReserved2 : 2;		// 保留
	unsigned short nWinSize;		// 窗口大小
	unsigned short nCheckSum;		// 校验和
	unsigned short nUrgPtr;			// 16位紧急指针
};

主界面几个控件的逻辑:
嗅探器主界面控件逻辑

树形控件与16进制编辑器控件的关联:通过SetItemData给CTreeCtrl的每个节点添加附加信息,注意附加信息不可以存放于局部变量之中,这里通过malloc动态分配。
什么时候可以方便的释放这些空间?响应树形控件的TVN_DELETEITEM消息:

1
2
3
4
5
6
7
8
9
10
11
12
13
// 分配的空间在这里删除
void CKSnifferDlg::OnTvnDeleteitemTreePackets(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
 
	if (pNMTreeView->itemOld.lParam != NULL)
	{
		free((TreeNodeData *)(pNMTreeView->itemOld.lParam));
	}
 
	*pResult = 0;
}

五、嗅探器演示
截图:
KSniffer运行界面截图
图片中TCP树形解析时有三个Destination Port,粘贴代码的时候弄错了,后面两个是Seq和ACK,懒得改了。

六、嗅探器源代码
点击下载:http://plcdn.qiniudn.com/wp-content/uploads/2014/09/ksniffer_src.zip


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> 基于WinPcap开发嗅探器程序
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



  1. 2012年10月23日23:00 | #1

    不错,给我扫盲了。你不是已经工作了吗?还在上课?

    [回复]

    代码疯子 回复:

    @捣乱, 读研了……没有工作啊,读研好忙的。。。

    [回复]

    捣乱 回复:

    @代码疯子, 我能不能来一份?g.daoluan#gmail#com

    [回复]

    代码疯子 回复:

    @捣乱, 已发

    [回复]

    捣乱 回复:

    @代码疯子, 悲剧,用的是vs2010吧,08打不开

    [回复]

    代码疯子 回复:

    @捣乱, 应该可以改一下那个工程文件,好像就是改一下一个类似GUID的东西。如果2008没有打SP1补丁,可能有些代码还需要修改下

    [回复]

  2. PowerTool
    2012年10月24日08:56 | #2

    good job,能给一份代码吗?多谢
    ithurricane@126.com

    [回复]

    代码疯子 回复:

    @PowerTool, [em008] PowerTool 膜拜,已发,表示我的代码很难看。

    [回复]

    powertool 回复:

    @代码疯子, 呵呵,居然认识我啊。。代码已收到,多谢 [em015]

    [回复]

  3. 2012年10月31日00:54 | #3

    能把源码共享下么 ?我最近也在写一个嗅探程序,谢谢了

    [回复]

    代码疯子 回复:

    @RWXR, 已发,注意查看邮件。

    [回复]

    RWXR 回复:

    @代码疯子, 邮件没收到,就收到个你回复的提示邮件。麻烦了

    [回复]

    rwxr 回复:

    @代码疯子, 已经收到了,不过不知道什么原因,被腾讯以为垃圾邮件了,谢谢

    [回复]

    代码疯子 回复:

    @rwxr, 可能是因为附件的原因

    [回复]

    rwxr 回复:

    @代码疯子, 你给我的程序在 vs2010 vs2012 编译都不通过,能把编译好的二进制文件给我份么 ?我好弄清程序的大体逻辑,再次麻烦了

    [回复]

    代码疯子 回复:

    @代码疯子, 有什么问题吗?可否描述下,可以邮件沟通

    [回复]

    rwxr 回复:

    @代码疯子, LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    [回复]

    代码疯子 回复:

    @rwxr, 这个好像是VS的原因,在网上简单了解了下,你可以试试这个方法:

    项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”

    更加具体的信息请去网上找找

    [回复]

    rwxr 回复:

    @代码疯子, 谢谢,已经找过了,也尝试了,问题依旧,很莫名,现在我在重写个嗅探程序,当练手。

    [回复]

  4. Stone
    2012年11月6日13:06 | #4

    额,小菜鸟路过,能否也给我一份源码瞧瞧啊?邮箱:shanyishan111@foxmail.com.先谢谢了哦~

    [回复]

    代码疯子 回复:

    @Stone, 已发

    [回复]

    Stone 回复:

    [em015] @代码疯子, 谢谢,代码已经收到,并成功编译运行了,灰常感谢!

    [回复]

    红红红红了眼 回复:

    大神可以给一份代码吗 C的 可以运行抓包的 急求啊!!!!

    [回复]

  5. 2012年11月8日09:49 | #5

    呵呵。求代码一份。学习学习。

    [回复]

    代码疯子 回复:

    @harry, 已发

    [回复]

  6. 2012年11月8日20:38 | #6

    呵呵。谢了哇。

    [回复]

  7. 程序员
    2012年11月9日21:32 | #7

    想看看源码。。。不知道能发么?保证不会公布。。。

    [回复]

    代码疯子 回复:

    @程序员, 发你邮箱了

    [回复]

  8. weiwei
    2012年11月14日09:05 | #8

    能否给我也发一份啊,谢谢啦!

    [回复]

    代码疯子 回复:

    @weiwei, 已发

    [回复]

    weiwei 回复:

    [em022] 收到代码,感谢!

    [回复]

  9. conan
    2012年11月15日20:26 | #9

    大神您好,求一份源码继续学习,多谢!

    [回复]

    代码疯子 回复:

    @conan, 已发,请查收

    [回复]

    conan 回复:

    @代码疯子, 收到邮件,感谢大神!!! [em022]

    [回复]

  10. mumu
    2012年12月9日11:41 | #10

    最近在做一个嗅探器,发一份吧,谢谢

    [回复]

    代码疯子 回复:

    @mumu, 已发,请查收。

    [回复]

  11. incstrive
    2012年12月9日11:48 | #11

    大神,也给我一份呗。。
    谢谢!

    [回复]

    代码疯子 回复:

    @incstrive, 已发,请查收。

    [回复]

  12. liugngg
    2012年12月10日11:07 | #12

    本人是做网络测试的,看到大神的文章非常有用,请发给我一份源代码学习一下吧,谢谢!liugngg@gmail.com

    [回复]

    代码疯子 回复:

    @liugngg, 已发

    [回复]

    liugngg 回复:

    @代码疯子, 劳驾大神再发一次吧,确实没有收到。发这个邮箱吧:liugang@catr.cn
    谢谢!

    [回复]

    代码疯子 回复:

    @liugngg, 这次发到你的新邮箱了

    [回复]

  13. mysql
    2012年12月11日18:13 | #13

    @代码疯子,麻烦发一份代码过来咯,非常感谢。1069063045@qq.com

    [回复]

    代码疯子 回复:

    @mysql, 已发

    [回复]

  14. 猪猪~~
    2012年12月12日19:03 | #14

    能否发一份代码过来呢?急用496049044@qq.com

    [回复]

    代码疯子 回复:

    @猪猪~~, 已发

    [回复]

  15. erlengzi
    2012年12月16日22:33 | #15

    写的很仔细。

    我是一个初学者,求代码研究。谢谢!
    liuxuefang1980@163.com

    [回复]

    代码疯子 回复:

    @erlengzi, 已发

    [回复]

  16. 博博
    2012年12月19日19:25 | #16

    我目前也在编相关的软件,求代码研究。万分感谢!

    [回复]

    代码疯子 回复:

    @博博, 已发

    [回复]

  17. charlie
    2012年12月19日23:20 | #17

    我目前在编相关的软件,求代码研究。谢谢。

    [回复]

    代码疯子 回复:

    @charlie, [em008] 发了

    [回复]

    charlie 回复:

    @代码疯子, 已收到,非常感谢 [em010]

    [回复]

  18. jianhua
    2012年12月19日23:46 | #18

    求代码啊,谢谢

    [回复]

    代码疯子 回复:

    @jianhua, 已发

    [回复]

  19. 自由飞翔
    2012年12月21日10:26 | #19

    不错 求代码 学习 谢谢 [em005]

    [回复]

    代码疯子 回复:

    @自由飞翔, 已发

    [回复]

  20. 听雨
    2012年12月24日17:28 | #20

    能不能也给我发一份代码啊?

    [回复]

    代码疯子 回复:

    @听雨, 发了。这几天忙去了,晚了点,哈哈

    [回复]

  21. 2012年12月31日12:48 | #21

    给我份谢谢exploit_db@126.com,学习中。。。

    [回复]

    代码疯子 回复:

    @SDK, 已发

    [回复]

  22. sure
    2013年1月16日15:49 | #22

    求 源码和程序 我怕我运行不了代码 谢谢了wshwhbez@163.com

    [回复]

    代码疯子 回复:

    @sure, 已发

    [回复]

    sure 回复:

    @代码疯子, 谢谢了。

    [回复]

  23. Sunny
    2013年3月8日14:56 | #23

    zurro1984@163.com 真心求代码!!!!

    [回复]

    代码疯子 回复:

    @Sunny, 已发送

    [回复]

    Sunny 回复:

    @代码疯子, 收到,多谢!

    [回复]

  24. silvia
    2013年3月9日17:33 | #24

    能不能也给我发一份代码?学习学习

    [回复]

    代码疯子 回复:

    @silvia, 已发送

    [回复]

    silvia 回复:

    @代码疯子, 多谢诶

    [回复]

  25. winnet
    2013年4月15日11:55 | #25

    求源文件 winnetbs@163.com 谢谢!

    [回复]

  26. winnet
    2013年4月15日11:56 | #26

    求源文件 winnetbs@163.com 谢谢!

    [回复]

    代码疯子 回复:

    @winnet, 已发,请查收

    [回复]

    winnet 回复:

    @代码疯子, 收到 谢谢

    [回复]

  27. 月下人生
    2013年4月16日20:27 | #27

    最近在学习相关网络抓包知识,求源文件一份,学习学习。谢谢。

    [回复]

    代码疯子 回复:

    @月下人生, 已发

    [回复]

    月下人生 回复:

    @代码疯子, [em022] 十分感谢

    [回复]

  28. 月下人生
    2013年4月16日20:28 | #28
  29. dayima
    2013年4月22日21:21 | #29

    求一份 [em011]

    [回复]

    代码疯子 回复:

    @dayima, 已发~

    [回复]

  30. fp151
    2013年5月19日16:05 | #30

    正在学习这个方面的知识,想看下您 的具体的代码!!!谢谢!!!

    [回复]

    代码疯子 回复:

    @fp151, 已发

    [回复]

  31. 下雨
    2013年6月1日14:45 | #31

    求一份

    [回复]

    代码疯子 回复:

    @下雨, 已发

    [回复]

  32. 新手
    2013年6月1日22:37 | #32

    大哥 嗅探器的源代码还有木有?…..老师需要我们做一个….找个好的来借鉴….不知可否…谢了

    [回复]

  33. 哇啦啦
    2013年6月1日22:37 | #33

    大神,嗅探器的源代码还有木有?
    求一个来借鉴一下,谢啦

    [回复]

  34. johnny
    2013年6月9日16:09 | #34

    求代码一份。学习学习。

    [回复]

    代码疯子 回复:

    @johnny, 已发

    [回复]

  35. jA
    2013年6月13日23:06 | #35

    源码还有吗?有的话麻烦发一份。。谢谢

    [回复]

    代码疯子 回复:

    @jA, 发了

    [回复]

  36. tian
    2013年7月16日17:21 | #36

    可以来一份吗!

    [回复]

    代码疯子 回复:

    @tian, 已发

    [回复]

  37. hillson110
    2013年7月19日01:54 | #37

    能发个代码,学习吗,谢谢

    [回复]

    代码疯子 回复:

    @hillson110, 已发送

    [回复]

  38. lindaoge
    2013年8月1日10:33 | #38

    大神,跪求发个代码学习一下!谢谢!邮箱:237898417@qq.com

    [回复]

    代码疯子 回复:

    @lindaoge, 已发送

    [回复]

  39. hello
    2013年8月14日10:40 | #39

    大神,也给发个代码吧997175349@qq.com

    [回复]

    代码疯子 回复:

    @hello, 已发送

    [回复]

  40. foRK
    2013年8月31日12:07 | #40

    学习中 求一份源码 谢谢了 261496481@qq.com

    [回复]

    代码疯子 回复:

    @foRK, 已发

    [回复]

  41. gcdfy
    2013年9月8日03:54 | #41

    正在学习相关内容,新手求大神代码 gcdfyitcfik@sina.com 谢谢

    [回复]

  42. gcdfyitcfik
    2013年9月8日03:56 | #42

    新手求大神代码 正在学习中 gcdfyitcfik@sina.com 谢谢

    [回复]

  43. rgtfm
    2013年10月5日16:24 | #43

    最近想学习下wincap编程,求大神指导rgtm@foxmail.com

    [回复]

    代码疯子 回复:

    @rgtfm, 已发

    [回复]

  44. warmocean
    2013年10月11日10:10 | #44

    源文件commondef.h中,
    #define CAP_FILTER_TCP 0×00000001
    #define CAP_FILTER_UDP 0×00000002
    #define CAP_FILTER_ARP 0×00000004
    #define CAP_FILTER_ICMP 0×00000008
    #define CAP_FILTER_IGMP 0×00000010

    最后一行为什么不是
    #define CAP_FILTER_IGMP 0×00000016

    [回复]

  45. warmocean
    2013年10月11日10:14 | #45

    新手观摩代码中。。。
    源文件commondef.h中,
    #define CAP_FILTER_TCP 0×00000001
    #define CAP_FILTER_UDP 0×00000002
    #define CAP_FILTER_ARP 0×00000004
    #define CAP_FILTER_ICMP 0×00000008
    #define CAP_FILTER_IGMP 0×00000010
    最后一行好像有点问题,为什么不是#define CAP_FILTER_IGMP 0×00000016?

    [回复]

    代码疯子 回复:

    @warmocean, 前面有个0x,表示16进制,0×10就是十进制的16,你应该明白了吧

    [回复]

    warmocean 回复:

    @代码疯子, [em015] 学习了!

    [回复]

  46. 飞飞
    2013年10月11日22:00 | #46

    可以给我发一份代码看看吗?wxf2013xf@163.com,谢谢

    [回复]

    代码疯子 回复:

    @飞飞, 发了

    [回复]

  47. 小白菜
    2013年10月26日13:46 | #47

    谢谢分享,麻烦也发我一份吧,学习一下,邮箱zengjing_dlut@163.com

    [回复]

    代码疯子 回复:

    @小白菜, 已发送

    [回复]

  48. 小白菜
    2013年10月26日13:48 | #48

    谢谢分享,麻烦也发我一份学习一下吧,邮箱zengjing_dlut@163.com

    [回复]

  49. 2013年11月4日00:24 | #49

    您好,很高兴能看到这么好的文章, [em022] 能给一份源码吗?caochunxi@vip.qq.com,多谢了

    [回复]

    代码疯子 回复:

    @Time, 发了

    [回复]

  50. lxlike
    2013年11月18日20:14 | #50

    最近在做嗅探方面的工作,求代码一份。多谢

    [回复]

    代码疯子 回复:

    @lxlike, 已发

    [回复]

  51. 笨蛋鱼
    2013年11月29日19:17 | #51

    最近在做这一个,大神,求发。邮箱:381359675@qq.com [em022]

    [回复]

    代码疯子 回复:

    @笨蛋鱼, 已发

    [回复]

  52. 浅紫兮貅
    2013年12月1日12:53 | #52

    给我也发一份可以么,谢谢啦~~

    [回复]

    代码疯子 回复:

    @浅紫兮貅, 已发

    [回复]

  53. kiva
    2014年1月15日13:38 | #53

    [em022]
    能发源码给我吗?学

    [回复]

    代码疯子 回复:

    @kiva, 已发送

    [回复]

  54. levi
    2014年1月15日13:52 | #54

    求博主发一份源码,最近也在研究嗅探器,谢谢~

    [回复]

    代码疯子 回复:

    @levi, 已发送

    [回复]

    kiva 回复:

    @代码疯子, 谢谢 [em022]

    [回复]

  55. feng
    2014年2月23日21:32 | #55

    博主好!最近研究嗅探器的实现,无奈网上都是基于linux的,十分想要你这份基于winpcap的,求发一份,非常感谢!1558516107@qq.com

    [回复]

    代码疯子 回复:

    @feng, 已发送

    [回复]

  56. 小李
    2014年4月13日12:20 | #56

    最近学习协议分析,需要参考,特向楼主求助,谢谢!

    [回复]

    代码疯子 回复:

    @小李, 已发送

    [回复]

    小李 回复:

    @代码疯子, 请问解压密码是多少啊,大神~

    [回复]

    代码疯子 回复:

    @小李, 邮件里写了,引用的那一部分文字

    [回复]

  57. 鱼儿飞
    2014年4月22日08:45 | #57

    请发代码,学习,我也是需要做个检测工具,需要用到winpcap编程实现,求大神不吝赐教! 邮箱543932199@qq.com

    [回复]

    代码疯子 回复:

    @鱼儿飞, 已发送

    [回复]

  58. Bitnami
    2014年4月29日13:55 | #58

    求博主发一份源码,最近在研究winpcap,谢谢~

    [回复]

    代码疯子 回复:

    @Bitnami, 已发

    [回复]

  59. 2014年5月5日22:39 | #59

    楼主求发~

    [回复]

    代码疯子 回复:

    @LargeRui, 已发

    [回复]

  60. 小白
    2014年5月7日22:13 | #60

    最近在写相关工具,可以给我发一份吗,谢谢

    [回复]

    代码疯子 回复:

    @小白, 已发

    [回复]

  61. stanleyk490
    2014年5月10日21:34 | #61

    求博主发一份源码,毕业设计需要用到winpcap,最近在学习,谢谢!!!stanleyk490@hotmail.com

    [回复]

    代码疯子 回复:

    @stanleyk490, 已发

    [回复]

  62. yx9800
    2014年5月28日20:05 | #62

    能发份源码学习么? 980095948@qq.com,谢谢

    [回复]

    代码疯子 回复:

    @yx9800, 发了

    [回复]

  63. ak
    2014年6月19日20:06 | #63

    能发一份源代码学习吗?

    [回复]

    代码疯子 回复:

    @ak, 链接:http://url.cn/RhbhnD (密码:biYM)解压密码ksniffer

    [回复]

  64. 2014年6月20日17:12 | #64

    文件下载:
    链接:http://url.cn/RhbhnD (密码:biYM)解压密码ksniffer

    [回复]

  65. mobai
    2014年9月16日15:03 | #65

    大神可否分享一下代码,最近也在也嗅探器,学习学习

    [回复]

    mobai 回复:

    @代码疯子, 853075457@qq.com发来这里谢谢啦

    [回复]

  66. 路人假
    2014年9月23日09:04 | #66

    牛人,链接已过期,可否发一份到此915029157@qq.com,谢过!!!

    [回复]

  67. xdxl
    2014年10月11日13:00 | #67

    求一份源代码学习,谢谢!邮箱xdxulin19931030@163.com

    [回复]

  68. 新手求教
    2014年12月4日20:23 | #68

    前辈,我最近也在做这个,能发一份源码让我学习学习么?万分感谢,100017258@qq.com

    [回复]

  69. 重新学写代码
    2014年12月12日10:28 | #69

    能给我发一份代码吗。。拜托,最近我们在完成项目

    [回复]

    代码疯子 回复:

    @重新学写代码, 文章末尾给出了下载链接,http://plcdn.qiniudn.com/wp-content/uploads/2014/09/ksniffer_src.zip

    [回复]

  70. 夜神月
    2015年12月13日14:24 | #70

    能给一份嗅探器的源代码么,最近在做这个实验,麻烦了

    [回复]

    代码疯子 回复:

    @夜神月, 文章末尾给出了下载链接,http://plcdn.qiniudn.com/wp-content/uploads/2014/09/ksniffer_src.zip

    [回复]

  71. 红红红红了眼
    2016年5月20日16:20 | #71

    大神 求份代码啊 可以用 急求啊~~ 307533936@qq.com

    [回复]

  72. 安信工
    2016年10月7日22:57 | #72

    跪求项目源码,谢谢

    [回复]

  73. 安信工
    2016年10月7日22:59 | #73

    找到了,谢谢

    [回复]

  74. 2013年10月11日13:33 | #74

    @warmocean, 前面有个0x,表示16进制,0×10就是十进制的16,你应该明白了吧

    [回复]

    warmocean 回复:

    @代码疯子, [em015] 学习了!

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.