
信息安全
文章平均质量分 83
尹成
尹成微信18510341407,助理微信18514203048
展开
-
Keli Linux与网络安全(1)——在VMWare中安装Keli系统
Kali Linux是基于Debian的Linux发行版, 设计用于数字取证和渗透测试。由OffensiveSecurity Ltd维护和资助。最先由Offensive Security的Mati Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版。 Kali Linux预装了许多渗透测试软件,包括nmap (端口扫原创 2014-06-30 14:07:38 · 6416 阅读 · 2 评论 -
vc++网络安全编程范例(19)实现数字信封打包与拆解
数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法。PKCS#7中将数字信封作为术语进行定义,而在正文中对进行了如下解释:数字信封包含被加密的内容和被加密的用于加密该内容的密钥。虽然经常使用接收方的公钥来加密“加密密钥”,但这并不是必须的,也可以使用发送方和接收方预共享的对称密钥来加密。当接收方收到数字信封时,先用私钥或预共享密钥解密,得到“加密密钥”,再用该密钥解原创 2011-12-17 19:17:30 · 4343 阅读 · 0 评论 -
vc++网络安全编程范例(20)木马防范检测数据端口与进程
我们进行系统安防的时候,需要防范木马,木马的存在就有网络连接,我们检测数据端口与进程的模式来防范木马。我们来用VC++实现检测数据端口与进程,请见代码实现与注释讲解#include #include #include #include #pragma comment(lib, "ws2_32.lib")//----------------------------------------原创 2011-12-17 19:32:24 · 4100 阅读 · 1 评论 -
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 · 4605 阅读 · 1 评论 -
VC++网络安全编程范例(9)-基于OPENSSL实现对称算法与BASE64编码
对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。 对称算法的加密和解密表示为: Ek(M)=C Dk(C)=M原创 2011-12-17 13:31:57 · 3888 阅读 · 1 评论 -
VC++网络安全编程范例(8)-摘要签名和验证编程实现
是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数, 数字摘要也就是Hash函数。 数字摘要就是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,儿同样的明文其摘要必定一致。 一个Hash函数的好坏是由发生碰撞的概率决定的。如果攻击者能够轻易地构造出两个消息原创 2011-12-17 13:27:08 · 3815 阅读 · 3 评论 -
VC++网络安全编程范例(7)-实现哈希摘要算法
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。 哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上原创 2011-12-17 13:23:43 · 3949 阅读 · 0 评论 -
基于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 · 4099 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(22)Mapping File编程
文件映射(mapping)是一种将文件内容映射到进程的虚拟地址空间的技术。视图(View)是一段虚拟地址空间,进程可以通过View来存取文件的内容,视图是一段内存,可以使用指针来操作视图。使用文件映射之后,读写文件就如同对读写内存一样简单。在使用文件映射时需要创建映射对象,映射对象分为命名的和未命名的。映射对象还存取权限。 使用文件映射至少有3个好处,一是因为文件存储与硬盘上的,而文件原创 2011-12-17 12:44:09 · 3748 阅读 · 0 评论 -
VC++信息安全编程(1)分析实现程序自我复制
程序自我复制,是软件程序备份的一种功能,防止程序被修改,被调试,被破解。详细代码分析如下#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif///////////////////////////////////////////////////////////原创 2011-12-14 23:40:28 · 4463 阅读 · 0 评论 -
VC++信息安全编程(2)分析程序实现自我删除
很多时候,我们制作自动安装程序,安装完成以后自动删除,软件仅仅安装一次就自动删除,以保护软件知识产权。软件自动删除的代码是如何实现的呢,我们来看下#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif//////////////////////////////原创 2011-12-14 23:42:51 · 3313 阅读 · 2 评论 -
Keli Linux与网络安全(2)——初探Keli
Kali是BackTrack的升级换代产品,按照官方网站的定义,Kali Linux是一个高级渗透测试和安全审计Linux发行版。作为使用者,我简单的把它理解为,一个特殊的Linux发行版,集成了精心挑选的渗透测试和安全审计的工具,供渗透测试和安全设计人员使用。也可称之为平台或者框架。 作为Linux发行版,Kali Linux是在BackTrack Linux的基础上,遵循Debian开发标准,原创 2014-06-30 14:09:40 · 4805 阅读 · 0 评论 -
VC++分析数据包实现POP3协议分析
POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是原创 2012-11-07 18:31:03 · 4033 阅读 · 1 评论 -
VC++实现枚举进程与模块
#pragma once#define _WIN32_WINNT 0x0500 #include"windows.h"#include"tlhelp32.h"#include"stdio.h"#include"NativeApi.h"#include"wchar.h"#include"psapi.h"//SDK6.0#pragma comment(lib,"psapi.lib")/原创 2012-10-24 15:20:23 · 5640 阅读 · 1 评论 -
基于winpcap的NDIS在IE浏览器,360安全浏览器hack"www.360.cn"
winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。winpcap 驱动各项功能 1. 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据 winpcap结构包; 2. 在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据原创 2012-06-13 19:20:15 · 5048 阅读 · 0 评论 -
基于VC++实现APC注入
请见代码,向指定进程插入钩子#include "stdafx.h"#define _WIN32_WINNT 0x0400#include #include #include #include using namespace std;#define DEF_BUF_SIZE 1024// 用于存储注入模块DLL的路径全名char szDllPa原创 2012-05-11 18:17:57 · 3883 阅读 · 0 评论 -
VisualC++信息安全编程(6)穿透卡巴斯基的键盘记录编程-网络战技术
在国家之间的网络战争中,窃取密码是个很重要的事情。而密码往往是键盘输入的。利用原始设备输入变化RawInput 实现键盘记录,并穿透最牛的杀毒软件卡巴斯基。 引用外国人的原始设备输入变化的类。请柬代码与详细注解。 #ifndef _RAWINPUT_H#define _RAWINPUT_H#include /* * The input is in the regular message原创 2012-01-07 00:33:44 · 7763 阅读 · 7 评论 -
VC++信息安全编程(4)创建Windows服务
Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中原创 2011-12-14 23:52:19 · 3331 阅读 · 0 评论 -
VC++信息安全编程(3)扫描Unicode漏洞
Unicode是如今最热门的漏洞之一,也是比较简单易学的一个漏洞,比如去年5.1中美黑客大战中,使用的就是这个漏洞。如果我们能知道他们所采用的入侵手段,就可以进行有效的防御!今天就让我们一起来了解一下那些黑客是怎样利用该漏洞进行入侵的,目的是通过对这种黑客手段的了解,来找到防御方法。什么是UNICODE漏洞NSFOCUS安全小组发现IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在原创 2011-12-14 23:49:02 · 2954 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(20) 纤程与线程的互相转换
在Windows2000/XP中,纤程(fiber)相当于用户级别的线程或轻进程.纤程由Win32库函数支持,对核心是不可见的.纤程可以通过SwitchToFiber显示至另一合作纤程,以实现合作纤程之间的协同.纤程包含独立的目态栈,寄存器状态的控制信息.目态控制的纤程转接要求较高的编程经验.由于纤程属于目态对象,一个纤程被封锁意味着所在线程被封锁.应用程序可以通过ConvertThreadToF原创 2011-12-17 12:30:37 · 3273 阅读 · 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 · 3057 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(17)通过pipe进程间通信
管道是一种用于在进程间共享数据的机制,其实质是一段共享内存。Windows系统为这段共享的内存设计采用数据流I/0的方式来访问。由一个进程读、另一个进程写,类似于一个管道两端,因此这种进程间的通信方式称作“管道”。 管道分为匿名管道和命名管道。 匿名管道只能在父子进程间进行通信,不能在网络间通信,而且数据传输是单向的,只能一端写,另一端读。 命令管道可以在任意进程间通信,通信是双原创 2011-12-17 12:17:28 · 3598 阅读 · 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 · 6139 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(18)远程代码注入执行
我们进行系统级别的安全监控的时候,防范木马的时候,经常需要进行远程代码注入执行。执行步骤如下1. 提升进程权限,如果权限不够的话,很容易造成 OpenProcess 失败;2. 确定你的宿主进程,即你所要注入代码的进程,这个其实很好办,你要是不想你的木马或者病毒被别个一下子就结束了的话, 最好是选择系统要想运行,则必须开启的那种进程,比如资源管理器进程 Explorer.exe, Wind原创 2011-12-17 12:23:39 · 3730 阅读 · 0 评论 -
基于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 · 2661 阅读 · 0 评论 -
VC++消息钩子编程
一、消息钩子的概念1、基本概念 Windows应用程序是基于消息驱动的,任何线程只要注册窗口类都会有一个消息队列用于接收用户输入的消息和系统消息。为了拦截消息,Windows提出了钩子的概念。钩子(Hook)是Windows消息处理机制中的一个监视点,钩子提供一个回调函数。当在某个程序中安装钩子后,它将监视该程序的消息,在指定消息还没到达窗口之前钩子程序先捕获这个消息。这样就有机会对此原创 2011-10-23 23:54:00 · 11968 阅读 · 7 评论 -
VC++网络安全编程范例(3)-消息鉴别码MAC算法编程
消息鉴别码(Message Authentication Code)也叫密码校验和(cryptographic checksum),鉴别函数的一种. 消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性.使用一个密钥原创 2011-10-07 22:00:34 · 4597 阅读 · 1 评论 -
VC++网络安全编程范例(4)-创建自签名证书打包与拆解
数字信封包含被加密的内容和被加密的用于加密该内容的密钥。虽然经常使用接收方的公钥来加密“加密密钥”,但这并不是必须的,也可以使用发送方和接收方预共享的对称密钥来加密。当接收方收到数字信封时,先用私钥或预共享密钥解密,得到“加密密钥”,再用该密钥解密密文,获得原文。数字信封技术使用原创 2011-10-07 22:07:54 · 4783 阅读 · 1 评论 -
数据保密-第三代透明加密技术
<br /> <br />透明加密技术是近年来针对企业数据保密需求应运而生的一种数据加密技术。所谓透明,是指对使用者来说是透明的,感觉不到加密存在,当使用者在打开或编辑指定文件时,系统将自动对加密的数据进行解密,让使用者看到的是明文。保存数据的时候,系统自动对数据进行加密,保存的是密文。而没有权限的人,无法读取保密数据,从而达到数据保密的效果。 <br />自WindowsNT问世以来,微软提出的分层的概念,使透明加密有了实现的可能。自上而下, <br />应用软件,应用层APIhook(俗称钩子), 文件转载 2011-04-09 20:45:00 · 6303 阅读 · 4 评论 -
VC++网络安全编程范例(12)-PKI编程
PKI(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。 PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数原创 2011-12-17 13:55:33 · 5384 阅读 · 4 评论 -
vc++网络安全编程范例(15)-导出会话密钥
密钥(Cryptographic key)是一个基于RSA公匙加密体系的邮件加密软件。它能对你的邮件加上数字签名从而使收信人可以确信邮件是你发来的。它让你可以安全地和你从未见过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。它采用了:审慎的密匙管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大,有很快的速度。密钥(Crypt原创 2011-12-17 18:36:47 · 3793 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(23)遍历驱动器并获取驱动器属性
我们在进行Windows编程的时候,经常需要进行遍历驱动器并获取驱动器属性,我们来实现遍历驱动器并获取驱动器属性。请见代码实现与注释讲解 #define _WIN32_WINNT 0x0501/* 头文件 */#include #include /* 预定义 */#define BUFSIZE MAX_PATH/* 函数申明 */BOOL GetDirverIn原创 2011-12-17 12:48:14 · 3176 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(21)获取和设置环境变量
环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你原创 2011-12-17 12:35:28 · 3648 阅读 · 0 评论 -
基于visual c++之windows核心编程代码分析(16)使用邮槽进行进程通信
在Windows环境下,实现进程间通信的方式有很多种,如套接字、管道、远程过程调用和NETBIOS等,邮槽是其中实现单通道进程间通信的一种。创建邮槽的进程被称为邮槽服务器,而其它发送消息给邮槽的进程被称为邮槽客户端。邮槽客户端能发送消息给本机的邮槽,也可发送消息给局域网内其他计算机内的邮槽,所有这些消息都存储在邮槽内,直到邮槽服务器读取它。这些消息通常是以广播的方式发送,建立在面向无链接的数据报的原创 2011-12-17 12:12:59 · 3051 阅读 · 0 评论 -
基于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 · 2654 阅读 · 0 评论 -
vc++网络安全编程范例(18)-open ssl 实现数字证书编程
数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一原创 2011-12-17 19:12:42 · 4597 阅读 · 2 评论 -
vc++网络安全编程范例(17)-open ssl 实现文件加密与解密
OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。对称加密算法 OpenSSL一共提供了8种对称加密算法原创 2011-12-17 19:01:40 · 4616 阅读 · 0 评论 -
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 · 4015 阅读 · 1 评论 -
vc++网络安全编程范例(14)-openssl bio编程
OpenSSL整个软件包大概可以分成三个主要的功能部分:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。 作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。BIO机制是OpenSSL提供的一种高层IO接口,该接口原创 2011-12-17 14:04:39 · 3872 阅读 · 0 评论 -
基于Visual C++2010与Windows 7Sdk开发与win7安全中心通信(类似卡巴斯基提示已经关闭,需要更新等等)
WIndows 7安全中心主要为用户的信息安全而服务,会提示杀毒软件尚未安装,提示杀毒软件已经关闭,提示杀毒软件需要更新等等,我们如何向WIndows 7安全中心发送消息呢,发送消息以后,让WIndows 7安全中心显示我们的程序相关的信息呢,如何检测安全中心的信息呢,下列代码在Windows7平台调试成功,具体代码见注释:#include "stdafx.h"#include "原创 2010-03-22 22:34:00 · 4920 阅读 · 3 评论