- 博客(55)
- 资源 (718)
- 收藏
- 关注
原创 vc++网络安全编程范例(21)用CryptoAPI进行数据加密
由于过于复杂的加密算法实现起来非常困难,所以在过去,许多应用程序只能使用非常简单的加密技术,这样做的结果就是加密的数据很容易被人破译。而使用Microsoft提供的加密应用程序接口(即Cryptography API),或称CryptoAPI,可以方便地在应用程序中加入强大的加密功能,而不必考虑基本的算法。本文将对CryptoAPI及其使用的数据加密原理作一简单的介绍,然后给出了用CryptoAP
2011-12-17 21:51:18 4809 1
原创 vc++网络安全编程范例(20)木马防范检测数据端口与进程
我们进行系统安防的时候,需要防范木马,木马的存在就有网络连接,我们检测数据端口与进程的模式来防范木马。我们来用VC++实现检测数据端口与进程,请见代码实现与注释讲解#include #include #include #include #pragma comment(lib, "ws2_32.lib")//----------------------------------------
2011-12-17 19:32:24 4074 1
原创 vc++网络安全编程范例(19)实现数字信封打包与拆解
数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法。PKCS#7中将数字信封作为术语进行定义,而在正文中对进行了如下解释:数字信封包含被加密的内容和被加密的用于加密该内容的密钥。虽然经常使用接收方的公钥来加密“加密密钥”,但这并不是必须的,也可以使用发送方和接收方预共享的对称密钥来加密。当接收方收到数字信封时,先用私钥或预共享密钥解密,得到“加密密钥”,再用该密钥解
2011-12-17 19:17:30 4297
原创 vc++网络安全编程范例(18)-open ssl 实现数字证书编程
数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一
2011-12-17 19:12:42 4555 2
原创 vc++网络安全编程范例(17)-open ssl 实现文件加密与解密
OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。对称加密算法 OpenSSL一共提供了8种对称加密算法
2011-12-17 19:01:40 4565
原创 vc++网络安全编程范例(16)-open ssl 哈希编码解码数据
OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是1
2011-12-17 18:42:55 3982 1
原创 vc++网络安全编程范例(15)-导出会话密钥
密钥(Cryptographic key)是一个基于RSA公匙加密体系的邮件加密软件。它能对你的邮件加上数字签名从而使收信人可以确信邮件是你发来的。它让你可以安全地和你从未见过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。它采用了:审慎的密匙管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。密钥(Crypt
2011-12-17 18:36:47 3757
原创 vc++网络安全编程范例(14)-openssl bio编程
OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。BIO机制是OpenSSL提供的一种高层IO接口,该接口
2011-12-17 14:04:39 3830
原创 vc++网络安全编程范例(13)-openssl engine编程
Engine机制 Engine机制的出现是在OpenSSL的0.9.6版的事情,开始的时候是将普通版本跟支持Engine的版本分开的,到了OpenSSL的0.9.7版,Engine机制集成到了OpenSSL的内核中,成为了OpenSSL不可缺少的一部分。 Engine机制目的是为了使OpenSSL能够透明地使用第三方提供的软件加密库或者硬件加密设备进行加密。OpenSSL的Engine机制成功地达
2011-12-17 13:59:28 3837 1
原创 VC++网络安全编程范例(12)-PKI编程
PKI(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。 PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数
2011-12-17 13:55:33 5309 4
原创 VC++网络安全编程范例(11)-SSL高级加密网络通信
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 SSL (Secure Socket Layer) 为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)
2011-12-17 13:42:41 4574 1
原创 VC++网络安全编程范例(10)-SSL网络通信
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 SSL (Secure Socket Layer) 为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)
2011-12-17 13:38:31 6088
原创 VC++网络安全编程范例(9)-基于OPENSSL实现对称算法与BASE64编码
对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。 对称算法的加密和解密表示为: Ek(M)=C Dk(C)=M
2011-12-17 13:31:57 3856 1
原创 VC++网络安全编程范例(8)-摘要签名和验证编程实现
是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数, 数字摘要也就是Hash函数。 数字摘要就是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,儿同样的明文其摘要必定一致。 一个Hash函数的好坏是由发生碰撞的概率决定的。如果攻击者能够轻易地构造出两个消息
2011-12-17 13:27:08 3785 3
原创 VC++网络安全编程范例(7)-实现哈希摘要算法
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。 哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上
2011-12-17 13:23:43 3921
原创 基于visual c++之windows核心编程代码分析(24)IO控制、内核通信
我们在进行Windows编程的时候,经常需要进行IO控制与内核通信,我们来实现IO控制与内核通信。请见代码实现与注释讲解 驱动代码实现与分析/* 头文件 */#include // 包括了很多NT内核的类型、结构、函数定义,开发驱动时需要包括此头文件#include #include "xioctl.h"/* 常量与预定义 */#define NT_DEVICE_NAME L"
2011-12-17 13:06:36 4060
原创 基于visual c++之windows核心编程代码分析(23)遍历驱动器并获取驱动器属性
我们在进行Windows编程的时候,经常需要进行遍历驱动器并获取驱动器属性,我们来实现遍历驱动器并获取驱动器属性。请见代码实现与注释讲解 #define _WIN32_WINNT 0x0501/* 头文件 */#include #include /* 预定义 */#define BUFSIZE MAX_PATH/* 函数申明 */BOOL GetDirverIn
2011-12-17 12:48:14 3126
原创 基于visual c++之windows核心编程代码分析(22)Mapping File编程
文件映射(mapping)是一种将文件内容映射到进程的虚拟地址空间的技术。视图(View)是一段虚拟地址空间,进程可以通过View来存取文件的内容,视图是一段内存,可以使用指针来操作视图。使用文件映射之后,读写文件就如同对读写内存一样简单。在使用文件映射时需要创建映射对象,映射对象分为命名的和未命名的。映射对象还存取权限。 使用文件映射至少有3个好处,一是因为文件存储与硬盘上的,而文件
2011-12-17 12:44:09 3714
原创 基于visual c++之windows核心编程代码分析(21)获取和设置环境变量
环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你
2011-12-17 12:35:28 3613
原创 基于visual c++之windows核心编程代码分析(20) 纤程与线程的互相转换
在Windows2000/XP中,纤程(fiber)相当于用户级别的线程或轻进程.纤程由Win32库函数支持,对核心是不可见的.纤程可以通过SwitchToFiber显示至另一合作纤程,以实现合作纤程之间的协同.纤程包含独立的目态栈,寄存器状态的控制信息.目态控制的纤程转接要求较高的编程经验.由于纤程属于目态对象,一个纤程被封锁意味着所在线程被封锁.应用程序可以通过ConvertThreadToF
2011-12-17 12:30:37 3239 1
原创 基于visual c++之windows核心编程代码分析(19)枚举进程以及进程加载模块信息
我们进行Windows安全编程的时候,经常需要检测进程,我们来实践一下枚举进程与进程加载模块。请见代码实现与注释分析。 /* 头文件 */#include #include #include #include /* 预处理声明 */#pragma comment (lib, "psapi.lib")/* 函数声明 */VOID WINAPI EnumProcess1();VOI
2011-12-17 12:26:58 3019
原创 基于visual c++之windows核心编程代码分析(18)远程代码注入执行
我们进行系统级别的安全监控的时候,防范木马的时候,经常需要进行远程代码注入执行。执行步骤如下1. 提升进程权限,如果权限不够的话,很容易造成 OpenProcess 失败;2. 确定你的宿主进程,即你所要注入代码的进程,这个其实很好办,你要是不想你的木马或者病毒被别个一下子就结束了的话, 最好是选择系统要想运行,则必须开启的那种进程,比如资源管理器进程 Explorer.exe, Wind
2011-12-17 12:23:39 3685
原创 基于visual c++之windows核心编程代码分析(17)通过pipe进程间通信
管道是一种用于在进程间共享数据的机制,其实质是一段共享内存。Windows系统为这段共享的内存设计采用数据流I/0的方式来访问。由一个进程读、另一个进程写,类似于一个管道两端,因此这种进程间的通信方式称作“管道”。 管道分为匿名管道和命名管道。 匿名管道只能在父子进程间进行通信,不能在网络间通信,而且数据传输是单向的,只能一端写,另一端读。 命令管道可以在任意进程间通信,通信是双
2011-12-17 12:17:28 3532 1
原创 基于visual c++之windows核心编程代码分析(16)使用邮槽进行进程通信
在Windows环境下,实现进程间通信的方式有很多种,如套接字、管道、远程过程调用和NETBIOS等,邮槽是其中实现单通道进程间通信的一种。创建邮槽的进程被称为邮槽服务器,而其它发送消息给邮槽的进程被称为邮槽客户端。邮槽客户端能发送消息给本机的邮槽,也可发送消息给局域网内其他计算机内的邮槽,所有这些消息都存储在邮槽内,直到邮槽服务器读取它。这些消息通常是以广播的方式发送,建立在面向无链接的数据报的
2011-12-17 12:12:59 3011
原创 基于visual c++之windows核心编程代码分析(15)使用Mutex同步线程
我们编写多线程应用程序的时候,经常需要进行线程同步协作,我们来实践一下用Mutex同步线程。请见代码实现与注释分析。 /* 头文件 */#include #include /* 常量定义 */#define NUM_THREADS 4 /* 全局变量 */DWORD dwCounter = 0;HANDLE hMutex; /* 函数声明 */void UseMutex(voi
2011-12-17 12:07:57 2639
原创 基于visual c++之windows核心编程代码分析(14)使用Event同步线程
我们进行Windows编程编写多线程程序的时候经常需要用到线程同步,我们来实现用Event同步线程。请见代码注释与实例讲解。 /* 头文件 */#include #include /* 常量定义 */#define NUMTHREADS 3 #define BUFFER_SIZE 16#define FOR_TIMES 5/* 全局变量 */HANDLE hWriteEvent[N
2011-12-17 12:01:53 2627
原创 基于visual c++之windows核心编程代码分析(12)使用信号量同步线程
我们编写多线程应用程序的时候,经常需要进行线程同步协作,我们来实践一下用信号量同步线程。请见代码实现与注释分析,/* 头文件 */#include #include /* 常量定义 */#define NUMTHREADS 4 /* 全局变量 */HANDLE hSemaphore;/* 函数声明 */void UseSemaphore(void);DWORD WINAPI Se
2011-12-17 11:49:19 2933 3
原创 基于visual c++之windows核心编程代码分析(11)实现屏幕截取
我们在进行Windows编程的时候,经常需要进行屏幕截取,我们来实现截取屏幕,不依赖MFC来实现屏幕截取。请见代码实现与注释讲解 /* 头文件 */#include /* 常量定义 */#define PALVERSION 0x300#define CAP_SHOW_MODE_STRTCH 1#define CAP_SHOW_MODE_NOSTRTCH 0/* 全局变量 */H
2011-12-17 11:35:28 5573 3
原创 基于visual c++之windows核心编程代码分析(10)实现socket通信
在多台计算机之间实现通信,最常见的方法有两种:Socket通信与UDP通信。Socket是一种基于TCP/IP协议,建立稳定连接的点对点通信,它的特点是安全性高,数据不会丢失,但是很占系统资源。在JAVA中,ServerSocket类和Socket类为我们实现了Socket通信,建立通信的一般步骤是:1。建立服务器ServerSocket ss = new ServerSocket(端口号);So
2011-12-17 11:32:37 3647 1
原创 基于visual c++之windows核心编程代码分析(9)实现Windows服务并安装,控制
我们进行Windows编程的时候,经常涉及到Windows服务编程,针对Windows服务我们该怎么编程呢,我们先来实现一个Windows服务并实现之,请见注释代码分析。/* 头文件 */#include /* 全局变量 */SERVICE_STATUS SplSrvServiceStatus; SERVICE_STATUS_HANDLE SplSrvServiceS
2011-12-17 11:23:19 4432
原创 基于visual c++之windows核心编程代码分析(8)自动下载更新程序
我们编写Windows程序,经常需要自动更新,该功能如何实现呢,我们来看代码实现与注释讲解 #include "stdafx.h"#include "AutoUpdate.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 唯一的应用程序对象CWinApp theApp;using namespace std;#define MYV
2011-12-16 22:46:47 4741 3
原创 基于visual c++之windows核心编程代码分析(13)获取磁盘可用空间信息
我们在进行Windows核心编程,经常要用到获取磁盘可用空间信息。我们来亲自编程实践获取磁盘可用空间信息,请见代码实现与注释讲解 /* 头文件 */#include #include /* ************************************ * BOOL GetDiskSpaceInfo(LPCSTR pszDrive * 功能 根据输入的驱动器,获取磁盘总容量
2011-12-16 22:25:30 3465
原创 基于visual c++之windows核心编程代码分析(7)操作光驱
我们在进行Windows编程的时候经常需要进行操作光驱,请见代码实现与注释讲解。 /* 头文件 */#include #include #include /* 预定义 */#define BUFSIZE 512/* ************************************ * int main( int argc, PCHAR argv[]
2011-12-16 22:22:51 2709
原创 基于visual c++之windows核心编程代码分析(6)分配和释放可读可写的虚拟内存页面
我们在进行Windows核心编程,经常要用到读取虚拟内存。我们来亲自实践一个分配与释放可读可写的虚拟内存页面,请见代码实现与注释讲解。#include #include /************************************** int main(void)* 功能 演示虚拟内存的使用** 参数 未使用******************************
2011-12-16 21:40:25 3198
原创 基于Visual C++之Windows核心编程代码分析(5)操作注册表与系统时间
我们进行Windows编程的时候,经常需要进行注册表操作,操作注册表请见下列实现代码与说明注释。 /* 头文件 */#include #include #include /* 预定义 */#define MAX_KEY_LENGTH 255#define MAX_VALUE_NAME 16383/* ************************************* vo
2011-12-16 21:33:10 3132
原创 基于Visual C++之Windows核心编程代码分析(3)实现程序自动安装
我们进行Windows编程的时候,经常需要开发程序,使程序进行自动安装。具体如何实现呢,请见代码实现与注释分析。**************************************//* 头文件 */#include #include #include /* 库 */#pragma comment (lib, "shell32.lib")#pragma comment (li
2011-12-16 21:20:57 3828 1
原创 基于Visual C++之Windows核心编程代码分析(2)实现Windows用户管理
在Windows编程中间,我们经常需要添加用户,删除用户,添加用户组等等功能,那些功能如何实现呢,我们请见实现代码与注释分析 /* UNICODE */#ifndef UNICODE#define UNICODE#endif/* 头文件 */#include #include #include #include /******************************
2011-12-16 21:17:30 3605 1
原创 基于Visual C++之Windows核心编程代码分析(1)实现设备管理器枚举设备
我们进行Windows编程的时候,有些时候需要枚举设备,例如光盘,光驱,硬盘等等,我们如何实现功能呢,请见代码分析 #include #include #include #include #include /* 函数声明 */BOOL EnumPresentDevice( const GUID * InterfaceClassGuid );BOOL EnumAllDevice();
2011-12-16 21:14:15 9756 8
原创 VC++信息安全编程(14)PNP溢出代码漏洞扫描检测
信息提供:安全公告漏洞类别:边界条件错误攻击类型:远程攻击和本地攻击发布日期:2005-10-11更新日期:2005-10-24受影响系统:Nortel Networks Centrex IP Element Manager 8.0 Nortel Networks Centrex IP Element Manager 7.0 Nortel Networks Centrex IP Element M
2011-12-15 08:12:35 3658 2
原创 VC++信息安全编程(13)Windows2000/xp/vista/7磁盘扇区读写技术
有些时候,我们读取磁盘文件,会被hook.我们读到的可能并非实际的文件。我们直接读取磁盘扇区获取数据。实现磁盘数据的读写,不依赖WindowsAPI。 void CSectorEdit2000Dlg::OnView() { UpdateData(TRUE); if (m_uTo < m_uFrom) return; char cTemp[1]; memcpy(cTemp, m_D
2011-12-15 08:04:42 5231 9
VMware-workstation-full-12.5.0-4352439完美破解版.exe
2016-10-11
codeblocks-16.01mingw_fortran-setup.exe下载
2016-10-10
Java语言程序设计(基础篇)(原书第10版)
2016-09-29
20150329C定义变量->源代码
2016-09-08
20150329C补码->源代码
2016-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人