这一节主要介绍如何获取设备列表,比较简单 获取设备列表主要是在CAdpDlg中完成,也就是对应之前创建的选择适配器模块,如图: 当打开选择适配器对话框后,在列表视图控件中显示当前主机所有适配器及适配器的描述,当选中一个适配器时,在下方的编辑框中会显示当前选中的适配器,单击绑定会提示网卡绑定成功. 本节中代码都在AdpDlg.cpp中完成,当然变量的声明要在其对应的头文件中去做,这里就不再叙述. 首先要获取设备列表,在OnInitDialog函数中加入如下代码: ) return FALSE; 这…
介绍程序模块前,这一节再复习一下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地址的过滤要使用…
知识准备: 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…
这一节是本系列教程的结尾了,内容也比较简单,主要是对网络协议进行分析,其实学过计算机网络的同学完全可以略过 在整个项目中需要有一个头文件存放各层协议的头部定义,我把它们放在了head.h中,这个头文件都有什么呢,首先放几个关于协议的宏定义,这样可以让整个程序显得更加清晰: /* 网络层协议类型 */ #define IP 0x0800 #define ARP 0x0806 #define RARP 0x8035 /* 传输层类型 */ #define ICMP 0x01 #define IGMP…
零零散散写了三天,完成了编写嗅探器的文章,旨在让自己加深印象,是初学者少走一些弯路.因为先前未接触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,这样…
原文地址: 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 规范提升了您的…
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-2 配置您的Orchard开发环境 这是从头开始编写一个新的Orchard模块的教程的第2篇.对于本教程的概述,请参阅介绍. 当创建Orchard模块时,建议您下载完整的源代码,让我们从Orchard项目的首页:http://orchardproject.net/下载…
看到Freebuf 小编发表的用这个隐藏于PHP模块中的rootkit,就能持久接管服务器文章,很感兴趣,苦无作者没留下PoC,自己研究一番,有了此文 0×00. 引言 PHP是一个非常流行的web server端的script语言.目前很多web应用程序都基于php语言实现.由于php是个开源软件并易于扩展,所以我们可以通过编写一个PHP模块(module 或者叫扩展 extension)来实现一个Backdoor. 本文就简单介下如何一步步编写一个简单的php 动态扩展后门. 0×01. p…
在Linux中想做驱动开发,那么一定要先熟悉module的使用和编写 一.什么是module 从名字上看就是模块的意思,我个人的理解就是一个一个的小程序,可以进行动态的安装和卸载,而在这里面就实现一些功能,其中驱动就是在module中. 二.编写一个最简单的module 编写一个最简单的module只需要两个文件即可:Makefile和xxx.c (1)Makefile #ubuntu的内核源码树,如果要编译在ubuntu中安装的模块就打开这2个 #KERN_VER = $(shell unam…
原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-part-1 介绍在这个系列博客中,我们将共同经历从头开始构建一个Orchard模块的过程!虽然Orchard是一个了不起CMS(内容管理系统),有着强大的功能和令人振奋的架构,可以无限的扩展,但它可能需要花费一定时间,以充分了解它的架构,并能够定制您自己的主题的各个方面或甚至创造整个模块来集成Orcha…
通过样例,让我们了解如何编写一个node的原生模块.当然,这篇文章还有一个目的,是为了方便以后编写关于node-gyp的文章,搭建初始环境. 基于node-addon-api 基于node-addon-api的nodejs插件,使用的是node的头文件:#include <node.h>. hello_world.cc #include <node.h> void Method(const v8::FunctionCallbackInfo<v8::Value>&…
使用 python 编写一个授权登录验证的模块 我们编写的思路: 1.登录的逻辑:如果用户名和密码正确,就返回 token . 2.生成 token 的逻辑,根据用户名,随机数,当前时间 + 2 小时 3.然后放在 users 中密码的后面,每次都不一样 4.验证 token 的步骤,取出以后,解码 得到用户名,去和 users 中的 token 比较,(只会和最近的 token 比较,之前的不比较,也就是之前的失效了) 然后再验证是否过期. 源代码: from flask import Fla…
  要求: 编写一个BS架构的多层表结构的信息管理模块,用户体验需要注意.包含错误处理,需要最终能完整的跑起来.页面可以不美化,但是整洁还是必须的.在不能完成详细功能需求的情况下优先保证基本功能. 1.      基本功能: 完成整个多层表结构模块的查询,新建,编辑功能. 2.      详细功能需求: 多层表的所有操作在DataSet中执行,包括新建,删除,编辑等操作,在tb_module_info表编辑页面 点击保存按钮后将所有的修改一次性提交到数据库,并且要包在事务中,任何环节出问题则回滚…
看用python写网络爬虫第一课之编写可复用的下载模块的视频,发现和<用Python写网络爬虫>一书很像,写了点笔记: #-*-coding:utf-8-*- import urllib2 #下载时遇到的错误经常是临时性的,比如服务器过载时返回的 503 Service Unavailable错误.对于此类错误,我们可以尝试重新下载 def download(url, num_retries = 2): #默认重试次数为2次 print "Downloading:", ur…
erlang程序设计第八章练习题第二题: code:all_loaded()命令会返回一个由{Mod,File}对构成的列表,内含所有Erlang系统 载入的模块.使用内置函数Mod:module_info()了解这些模块.编写一些函数来找出哪个模块导出的函数最多,以及哪个函数名最常见.编写一个函数来找出所有不带歧义的函数名,也就是那些只在一个模块里出现过的函数名. 这里主要有三个问题: 1.哪个模块导出的函数最多 2.哪个函数名最常见 3.哪些函数只在一个模块出现 module_fun:fin…
今天将python中socket模块的基本API学习完后,照着书上的实例编写一个套接字服务器和客户端.采用python3.5版本,在注释中会标明python2和python3的不同之处. 1.代码 (1)服务器端及对应代码解释 # ! /usr/bin/env python # -*- coding: utf-8 -*- # 编写回显服务器 import socket import sys import argparse # 定义常量 host = 'localhost' data_payloa…
什么是DLL: 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上 Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中.显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中.Windows编程所需要的大量的API函数也被包含在Kernel DLL中. DLL是建立在客户/服务器通信的概念上,包含若干函数.类或资源的库…
通过之前的学习我们已经了解了Python的很多基础运用了,现在我们尝试着做一个有使用价值的小脚本. 问题 需求: 我想要一个可以给我备份重要文件的程序. 需求分析: 首先文件是有存储路径,文件的路径和备份的路径,是一个文件还是很多文件,备份成什么样子的文件? 简单的分析过后,大概制定实现步骤: 1.需要备份的文件和目录由一个列表指定. 2.备份应该保存在主备份目录下. 3.文件备份成一个zip文件. 4.zip存档的名称是当前的日期和时间. 解决方案 当我们完成基本的程序设计的时候,就可以编写我…
项目中要求简单地测试一下基于FPGA的模拟平台的RJ45网口,也就是需要实现一个MII或者RMII模块.看了一下官方网口PHY芯片的官方文档,还是感觉上手有点障碍,想在网络上找些参考代码看看,最后只在opencores找到了一些MAC层控制模块,代码庞大且复杂,对于初学者来说阅读起来很困难. 于是在此以一个初学者的角度记录一下我实现一个简单的MII模块的过程,并且指出一些实现过程中要注意的问题.希望可以帮助有需要的朋友. 为了便于测试,我选择了和我们平台使用相同物理芯片的FPGA开发板NEXYS…
一.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…
_ 阅读目录 一:webpack插件的基本原理 二:理解 Compiler对象 和 Compilation 对象 三:插件中常用的API 四:编写插件实战 回到顶部 一:webpack插件的基本原理 webpack构建工具大家应该不陌生了,那么下面我们来简单的了解下什么是webpack的插件.比如我现在写了一个插件叫 "kongzhi-plugin" 这个插件.那么这个插件在处理webpack编译过程中会处理一些特定的任务. 比如我们现在在webpack.config.js 中引入了一…
使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进行修改配置和代码编写,并在这个过程中介绍vs使用过程中和C++项目的结合.源码见文章末尾Github链接. 前提 你已经阅读过<使用CEF(1)- 起步>,你可以在这些地方读到:知乎链接.cnblogs.或,你知道如何获得libcef的库以及libcef_dll_wrapper静态库. 文件准备…
2017 新年好 ! 新年第一天对我来说真是悲伤 ,早上兴冲冲地爬起来背着书包跑去实验室,结果今天大家都休息 .回宿舍的时候发现书包湿了,原来盒子装的牛奶盖子松了,泼了一书包,电脑风扇口和USB口都进牛奶了,赶紧拔掉电池,用风扇吹啊吹.强行开机,无线网卡坏掉,屏幕里面进牛奶,难看死啦 ~ 鼠标也坏掉了,谁能赠送我一个鼠标啊 ..O... 中午吃完饭,就开始完善模块加载器了.到傍晚,差不多了,出去浪了一会儿 ~ my-Require.js 回顾 在 使用RequireJS 并实现一个自己的Requ…
CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL +BIT祝威+悄悄在此留下版了个权的信息说: 开始 本文用step by step的方式,讲述如何使用CSharpGL渲染一个Klein Bottle,从而得到下图所示的图形.你会看到这并不困难. +BIT祝威+悄悄在此留下版了个权的信息说: 用Modern OpenGL渲染 在Modern OpenGL中,shader是在GPU上执行的程序,用于计算图形最终的样子:模型则提供顶点数据给shade…