零零散散写了三天,完成了编写嗅探器的文章,旨在让自己加深印象,是初学者少走一些弯路.因为先前未接触MFC,之后也不打算精通,完全是0基础,所以文章技术含量不高,但难点基本上都都包括了,凑合这看吧,接下来还得复习英语 MFC+WinPcap编写一个嗅探器之一(准备) MFC+WinPcap编写一个嗅探器之二(界面) MFC+WinPcap编写一个嗅探器之三(WinPcap) MFC+WinPcap编写一个嗅探器之四(获取模块) MFC+WinPcap编写一个嗅探器之五(过滤模块) MFC+WinP…
选择新建->项目->MFC应用程序->基于对话框完成,这里文件名为sniffer 打开资源视图中的Dialog列表,打开项目总默认创建的话框,将对话框中的所有控件删除,之后按照最终效果一一从工具栏中添加控件:List Control,用于显示数据包概要信息:Tree Control,用于显示数据包详细信息:Edit Control,用于显示数据包具体内容:此外还需要添加各种Static Text和Edit Control用于显示统计量的信息.为了美观请根据情况添加Group Box,这样…
知识准备: 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…
介绍程序模块前,这一节再复习一下WinPcap WinPcap开发一个嗅探器的主要步骤如下: (1)获取嗅探设备 WinPcap提供了pcap_findalldevs_ex() 函数来实现这个功能: 这个函数返回一个pcap_if 结构的链表,每个这样的结构都包含了一个适配器的详细信息: /* 获取本地机器设备列表 */ ) { fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf); exit(); } (2)打开设备…
这一节是程序的核心,也是最复杂的地方 首先需要明白的一点是,一般对于一个有界面的程序来说,往往需要多线程.本程序中除了界面线程外,抓包需要另外创建一个新的线程.在写抓包函数之前,首先要将前面两个模块的结果返回到主对话框界面对应的类实现中,在SnifferDlg.cpp中,修改之前增加的两个模块的触发函数如下: void CSnifferDlg::OnAdp() { // TODO: 在此添加命令处理程序代码 CAdpDlg adpdlg; if(adpdlg.DoModal() == IDOK)…
这一节主要介绍如何获设置捕获过滤,这里的过滤是指在捕获前过滤 设置捕获过滤主要是在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…
CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL +BIT祝威+悄悄在此留下版了个权的信息说: 开始 本文用step by step的方式,讲述如何使用CSharpGL渲染一个Klein Bottle,从而得到下图所示的图形.你会看到这并不困难. +BIT祝威+悄悄在此留下版了个权的信息说: 用Modern OpenGL渲染 在Modern OpenGL中,shader是在GPU上执行的程序,用于计算图形最终的样子:模型则提供顶点数据给shade…
编写一个C语言函数,要求输入一个url,输出该url是首页.目录页或者其他url 首页.目录页或者其他url 如下形式叫做首页: militia.info/ www.apcnc.com.cn/ http://www.cyjzs.comwww.greena888.com/ www.800cool.net/ http://hgh-products.my-age.net/ 如下形式叫做目录页: thursdaythree.net/greenhouses--gas-global-green-house-…
package com.swift; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; public class IO_FileFilter { public static void main(String[] args) throws Exception{ /* * 编写一个程序,将e:\neck目录下的所有.java文…
编写一个简单的内核驱动模块 static int hello_init() { printk(“hello,I am in kernel now\n”); ; } void addfunc(int a,int b) {return a+b;} static void hello_exit() { printk(“hello ,I will leave the kernel now\n”); } module_init(hello_init); module_exit(hello_exit); M…
使用C#winform编写渗透测试工具--敏感目录扫描 由于之前在做渗透测试的时候,发现使用的工具较多,切换起来较麻烦,便萌生了开发一个包含各种渗透测试工具的小程序,包括敏感目录扫描.端口查询.子域名挖掘.旁站查询.密码暴力破解.SQL注入等功能.这一篇主要介绍敏感目录扫描部分的原理和设计,软件的整体效果如下图所示. 目录 使用C#winform编写客户端软件 使用python编写脚本实现网站敏感目录扫描 C#调用脚本的方法 效果展示 一.使用C#winform编写客户端软件 网上有许多这方面的…
1.1在这之前,我们需要了解程序的编译过程 a.预处理:检查语法错误,展开宏,包含头文件等 b.编译:*.c-->*.S c.汇编:*.S-->*.o d.链接:.o +库文件=*.exe 1.2体验在VC下程序的编译 a.先编译,在链接 b.修改了哪个文件,就单独编译此文件,在链接 c.修改了哪个头文件,就单独编译使用该头文件的源文件,在链接 1.3在linux下实现上述要求 2.编写一个测试的Makefile 2.1直接编译链接 gcc -o test a.c b.c 缺点:改变其中一个文…
在.NET Core 1.0.0 RC2即将正式发布之际,我也应应景,针对RC2 Preview版本编写一个史上最简单的MVC应用.由于VS 2015目前尚不支持,VS Code的智能感知尚欠火候,所以我们直接采用最原始的记事本来编写这个MVC应用.[源代码从这里下载] 目录步骤一.安装最新的.NET Core SDK步骤二.定义源代码和配置        定义NuGet.xml        定义Project.json        定义入口程序        定义初始化类型       …
http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) : npm install http-server Windows 下使用: 在站点目录下开启命令行输入 http-server 访问: http://localhost:8080 or http://127.0.0.1:8080  使用于package.json "scripts":…
http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) :   npm install http-server  使用 : 在站点目录下开启命令行输入  node http-server 使用于package.json  ) -a IP 地址 (默认  seconds (defaults to .…
刚接触Linux时,对shell总有种神秘感:在对shell的工作原理有所了解之后,便尝试着动手写一个shell.下面是一个从最简单的情况开始,一步步完成一个模拟的shell(我命名之为wshell)的过程.这个所谓的shell和主流的shell还是有不少区别的,最大的区别是它本身不能执行shell脚本.也不能对一些复杂的命令行进行分析——原因很简单,我没有写相应的解释器.如果想自己实现一个简化的shell脚本解释器,如果有编译原理的知识准备,本身不是难事,但是工作量比较大,这里就不完成了,有兴…
如何编写一个编译c#控制台应用程序的批处理程序 2011-03-22 18:14 dc毒蘑菇 | 浏览 579 次 最近在网上看了一个教程,是学C#的,但是我的机子上装不上vs,所以想写一个批处理来编译,因为每次都要我更改目录,然后复制路径,再编译,输出,特别的浪费时间,所以特来求助网友,希望帮帮忙 分享到:   2011-03-22 19:17 #快乐假期,智慧随行# 提问者采纳   不知道你有没有使用过ANT,你可以创建ANT脚本来构建你的应用程序.如果不是很了解,也不愿意编写的话,我介绍你…
原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-6创建购物车服务和控制器 这是从头开始编写一个新的Orchard模块的教程的第6篇.对于本教程的概述,请参阅介绍. 在本篇,我们将使我们的用户可以添加商品到他们的购物车.要创建这样的功能,我们需要: 一个“添加到购物车”按钮,要被添加我们的产品目录上,将产品添加到购物车 某种购物车服务,以存储…
原文地址: http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-5创建和渲染ProductCatalog的内容类型 这是从头开始编写一个新的Orchard模块的教程的第5篇.对于本教程的概述,请参阅介绍. 为了网站的访问者能够将产品添加到他们的购物车,我们需要一个产品目录.产品目录可以是一个简单的产品清单.然而,在本教程中,我们希望主题作者能够接管渲染(r…
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-4定义的ProductPart 这是从头开始编写一个新的Orchard模块的教程的第4篇.对于本教程的概述,请参阅介绍. Orchard中的内容项(Content Items)由Content Parts组成.使用我们的网上商店模块,我们希望管理员可以通过把ProductPart附加到任何内容类…
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-3创建Orchard.Webshop模块项目 这是从头开始编写一个新的Orchard模块的教程的第3篇.对于本教程的概述,请参阅介绍. Orchard模块是一个真正的ASP.NET MVC的Area类库,同时遵循了ASP.NET MVC和Orchard的特定的规范.Orchard 规范提升了您的…
编写 Servlet 类 首先,需要在 java 目录下,创建一个名为 org.smart4j.chapter1 的包.然后,在该包下创建一个 HelloServlet  的类,代码如下: package org.smart4j.chapter1; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; imp…
什么是DLL: 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上 Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中.显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中.Windows编程所需要的大量的API函数也被包含在Kernel DLL中. DLL是建立在客户/服务器通信的概念上,包含若干函数.类或资源的库…
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pmpy为例(play music python),为了区别之前说的bash脚本添加了py后缀),来实现音乐的播放.注:本人ununut中安装了audacious,所以就以audacious为例,来实现音乐的播放. 第一步:进入一个目录,最好是自己特别选定的,如果用文件浏览器可以新建一个名为pmpy空白文档文件:如果是用终端可以输入命令:vi pmpy(可能会因为位置问题,需要添加sudo) 第二…
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious,所以就以audacious为例,来实现音乐的播放. 第一步:进入一个目录,最好是自己特别选定的,如果用文件浏览器可以新建一个名为pm空白文档文件:如果是用终端可以输入命令:vi pm(可能会因为位置问题,需要添加sudo) 第二步:向新建的文档内输入命令: #!/bin/bash 注:此行最好添加…
编写一个简单的Web Server其实是轻而易举的.如果我们只是想托管一些HTML页面,我们可以这么实现: 在VS2013中创建一个C# 控制台程序 编写一个字符串扩展方法类,主要用于在URL中截取文件名 ExtensionMethods.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace w…
一.SpringMVC的优势 Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一.Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架.Spring MVC 通过一  套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口.支持 REST 风格的 URL 请求(GET POST PUT DELTE).采用了松散耦合可插拔组件结构,比其他 MVC      框架更具扩展性和灵活性..二.编写一个简单的Sp…
最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何用Java语言编写一个简单的软件.一个小型的游戏.一个简易的项目.或者一些比较复杂的项目实战等等. 这些文章我不准备用概念来引入Java知识,因为这些概念类的东西网上各类教程都很齐全,初学的朋友们又会觉得概念很繁琐,所以我的这些文章主要针对于了解Java以及如何用Java语言编写一些简单的程序,所以…