选择新建->项目->MFC应用程序->基于对话框完成,这里文件名为sniffer 打开资源视图中的Dialog列表,打开项目总默认创建的话框,将对话框中的所有控件删除,之后按照最终效果一一从工具栏中添加控件:List Control,用于显示数据包概要信息:Tree Control,用于显示数据包详细信息:Edit Control,用于显示数据包具体内容:此外还需要添加各种Static Text和Edit Control用于显示统计量的信息.为了美观请根据情况添加Group Box,这样…
零零散散写了三天,完成了编写嗅探器的文章,旨在让自己加深印象,是初学者少走一些弯路.因为先前未接触MFC,之后也不打算精通,完全是0基础,所以文章技术含量不高,但难点基本上都都包括了,凑合这看吧,接下来还得复习英语 MFC+WinPcap编写一个嗅探器之一(准备) MFC+WinPcap编写一个嗅探器之二(界面) MFC+WinPcap编写一个嗅探器之三(WinPcap) MFC+WinPcap编写一个嗅探器之四(获取模块) MFC+WinPcap编写一个嗅探器之五(过滤模块) MFC+WinP…
知识准备: MFC:http://www.jizhuomi.com/software/257.html WinPcap:http://www.ferrisxu.com/WinPcap/html/index.html 以上知识学习完毕后足以完成这个项目 编写程序前请先配置好WinPcap的开发环境 WinPcap V4.1.3(驱动程序.Dll文件): http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe WinPcap V4.1.3 Devel…
这一节是程序的核心,也是最复杂的地方 首先需要明白的一点是,一般对于一个有界面的程序来说,往往需要多线程.本程序中除了界面线程外,抓包需要另外创建一个新的线程.在写抓包函数之前,首先要将前面两个模块的结果返回到主对话框界面对应的类实现中,在SnifferDlg.cpp中,修改之前增加的两个模块的触发函数如下: void CSnifferDlg::OnAdp() { // TODO: 在此添加命令处理程序代码 CAdpDlg adpdlg; if(adpdlg.DoModal() == IDOK)…
介绍程序模块前,这一节再复习一下WinPcap WinPcap开发一个嗅探器的主要步骤如下: (1)获取嗅探设备 WinPcap提供了pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个pcap_if 结构的链表,每个这样的结构都包含了一个适配器的详细信息: /* 获取本地机器设备列表 */ ) { fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf); exit(); } (2)打开设备…
这一节主要介绍如何获设置捕获过滤,这里的过滤是指在捕获前过滤 设置捕获过滤主要是在CFilterDlg中完成,也就是对应之前创建的设置过滤规则对话框,如图: 首先要根据用户的选择来生成一个合法的过滤规则字符串,根据WinPcap的要求,合法的过滤规则可以是如下几种: 1) 表达式支持逻辑操作符,可以使用关键字 and.or.not对子表达式进行组合,同时支持使用小括号.2) 基于协议的过滤要使用协议限定符,协议限定符可以为ip.arp.rarp.tcp.udp等.3) 基于MAC地址的过滤要使用…
这一节主要介绍如何获取设备列表,比较简单 获取设备列表主要是在CAdpDlg中完成,也就是对应之前创建的选择适配器模块,如图: 当打开选择适配器对话框后,在列表视图控件中显示当前主机所有适配器及适配器的描述,当选中一个适配器时,在下方的编辑框中会显示当前选中的适配器,单击绑定会提示网卡绑定成功. 本节中代码都在AdpDlg.cpp中完成,当然变量的声明要在其对应的头文件中去做,这里就不再叙述. 首先要获取设备列表,在OnInitDialog函数中加入如下代码: ) return FALSE; 这…
这一节是本系列教程的结尾了,内容也比较简单,主要是对网络协议进行分析,其实学过计算机网络的同学完全可以略过 在整个项目中需要有一个头文件存放各层协议的头部定义,我把它们放在了head.h中,这个头文件都有什么呢,首先放几个关于协议的宏定义,这样可以让整个程序显得更加清晰: /* 网络层协议类型 */ #define IP 0x0800 #define ARP 0x0806 #define RARP 0x8035 /* 传输层类型 */ #define ICMP 0x01 #define IGMP…
一.Django用Eclipse编写一个登录界面 二.Django用Eclipse编写一个登录界面Ajax和Django交互 各软件版本:Python 2.7.14,django 1.6.11 原来已经写好一个登录界面了,不过那个是系统自动的.现在我们自己动手写一个 1.我们在项目admin下新建一个 2.新建项目online: 3.把urls.py拷贝一份到online项目目录下: 然后开始修改admin项目下的settings.py: """ Django setting…
一.Django用Eclipse编写一个登录界面 二.Django用Eclipse编写一个登录界面Ajax和Django交互 Eclipse安装Python插件和Django的步骤直接省略. 创建demo步骤 直接上图 (记得运行一下直接停掉,报的错误可以不用理会.当然这个控制台也可以输入账号和密码,本人自己测试过,控制台输入的账号和密码完全登录 了,报密码错误.新手还不知道怎么解决这个问题.) 创建数据库表和登录字段 # python manage.py createsuperuser Use…