VisualC++信息安全编程
文章平均质量分 82
VisualC++信息安全编程,提供信息安全防护编程的范例,防止病毒,制止木马,保证数据安全,保证系统安全,保证网络安全
尹成
尹成微信18510341407,助理微信18514203048
展开
-
VisualC++信息安全编程(1)内联汇编实现NT下读MBR
MBR,全称为Master Boot Record,即硬盘的主引导记录。 为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(引导程序、分区表及分隔标识),也就是上面所说的主引导记录;而狭义的MBR仅指引导程序而言。 硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)原创 2012-01-06 06:35:35 · 4590 阅读 · 2 评论 -
VisualC++信息安全编程(2)内联汇编实现NTFS文件恢复
NTFS是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008、Windows Vista和Windows 7的标准文件系统。NTFS取代了文件分配表(FAT)文件系统,为Microsoft的Windows系列操作系统提供文件系统。NTFS对FAT和HPFS(高性能文件系统)作了若干改进,例如,原创 2012-01-06 06:39:49 · 4758 阅读 · 2 评论 -
VisualC++信息安全编程(3)内联汇编实现主引导区备份与恢复
硬盘的第一个扇区被保留为主引导扇区,它位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55A原创 2012-01-06 06:47:53 · 3442 阅读 · 1 评论 -
VisualC++信息安全编程(4)实现文件自我删除
文件自我删除是一个很有必要的功能,尤其在国家之间的网络战争。 #include "stdafx.h"#include //加入状态显示头文件.BOOL SelfDel1(){ SHELLEXECUTEINFO sei; TCHAR szModule [MAX_PATH],szComspec[MAX_PATH],szParams [MAX_PATH]; // 获得文件名.原创 2012-01-06 06:52:44 · 5179 阅读 · 1 评论 -
VisualC++信息安全编程(5)获取windows登陆账户密码
Windows Logon Process,Windows NT 用户登陆程序,管理用户登录和退出。因为登陆的域名和用户名是明文存储在winlogon进程里的,而Password是限定了查找本进程用户的密码 GetEnvironmentVariableW (L"USERDOMAIN", UserDomain, 0x400); >,然后到winlogon进程的空间中查找UserDomain和U原创 2012-01-06 07:06:06 · 8888 阅读 · 3 评论 -
VisualC++信息安全编程(6)穿透卡巴斯基的键盘记录编程-网络战技术
在国家之间的网络战争中,窃取密码是个很重要的事情。而密码往往是键盘输入的。利用原始设备输入变化RawInput 实现键盘记录,并穿透最牛的杀毒软件卡巴斯基。 引用外国人的原始设备输入变化的类。请柬代码与详细注解。 #ifndef _RAWINPUT_H#define _RAWINPUT_H#include /* * The input is in the regular message原创 2012-01-07 00:33:44 · 7655 阅读 · 7 评论 -
利用NUANCE 语音识别引擎RCEngine实现语音识别
1. 基础概念: RCEngine : 是一个封装了语音识别,语音文件操作,电话控制的类,它派生自 RCEngineInterface 抽象基类。所以要在程序中调用 Nuance 的语音识别功能你就必须实例化 RCEngine 。 NotifiableAdapter : RCEngine 的所有函数都是异步函数,它使用确认 --- 通知形式与用户程序通信,要获取到这些确认和通知原创 2008-12-30 10:44:00 · 29101 阅读 · 1 评论 -
一个Nuance 的语音识别的例子
#include "stdafx.h" #include "GetToken.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////原创 2008-12-30 10:56:00 · 36803 阅读 · 30 评论 -
vc++无进程式线程插入穿墙技术实现
加载模块核心源码#include "Loader.h"BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){ hinst = hinstDLL; switch(fdwReason) { case DLL_PROCESS_ATTACH: //MessageBox(NULL,"DL原创 2009-08-26 13:43:00 · 3068 阅读 · 0 评论 -
VC++实现镜像劫持(360保险箱启动原理)
#include "stdafx.h"#include #include int main(int argc, char* argv[]){ char temp[256]; DWORD ret; LPCTSTR szRegKey="SOFTWARE//Microsoft//Windows NT//CurrentVersion//Image File Execution Options"; //原创 2009-08-26 13:41:00 · 3899 阅读 · 0 评论 -
VC++ 基于NTFS的数据流创建与检测
#include #include int ReadStream( HANDLE hFile, bool bIsDirectory, char* FileName ){ //数据流文件名查找 // //输入: // 已打开的文件句柄 // bIsDirectory // 文件名, 用于显示数据流在哪个文件中 //结果: // 直接在函数中输出 //返回: //原创 2009-08-26 13:38:00 · 3096 阅读 · 0 评论 -
VC++实现NAT穿透之NAT类型检测
// NatCheck.cpp : Defines the entry point for the console application.//#include "stdafx.h" #include #include #include #include "winsock2.h" #include "./Include/packet.h"#pragma comment(原创 2009-08-26 13:30:00 · 6096 阅读 · 2 评论 -
vc++实现Ring3全局HOOK
/***********************************************************************//*实现全局hook模块基本完工,测试通过,没有发现异常。 计划1:在hook前首先检验该程序是否已被hook 计划2:添加枚举进程并hook功能 计划3:在备份api时,只备份目标api函数,避免备份整个dll浪费空间原创 2009-08-17 14:12:00 · 4294 阅读 · 1 评论 -
vc++实现内核级进程保护
保护核心代码 #include "ntddk.h"#define NT_DEVICE_NAME L"//Device//ProtectProcess"#define DOS_DEVICE_NAME L"//DosDevices//ProtectProcess"#define IOCTL_PROTECT_CONTROL CTL_CODE(FILE_DEVICE原创 2009-08-17 14:07:00 · 4555 阅读 · 1 评论 -
vc是实现RootKit文件隐藏
#include "ntddk.h"#include #pragma pack(1) //SSDT Tabletypedef struct ServiceDescriptorEntry { unsigned int *ServiceTableBase; unsigned int *ServiceCounterTableBase; //Used only in che原创 2009-08-17 14:06:00 · 3058 阅读 · 0 评论 -
VC实现Rootkit端口隐藏
#include "ntddk.h"#include #include #include #include "netType.h"#define NT_DEVICE_NAME L"//Device//HidePort"#define DOS_DEVICE_NAME L"//DosDevices//HidePort"#pragma pack(1) //SSDT表的结构typedef stru原创 2009-08-17 14:03:00 · 3832 阅读 · 0 评论 -
vc实现用文件系统过滤驱动实现文件隐藏的类
调用一个开源的文件过滤驱动, 头文件typedef struct _ATTACH_EXTENSION { CHAR VolumeLetter; PDEVICE_OBJECT VolumeDevice;} ATTACH_EXTENSION, *PATTACH_EXTENSION;PDRIVER_OBJECT g_DriverObject; 源文件#原创 2009-08-17 13:57:00 · 4166 阅读 · 2 评论 -
vc++实现Inline hook KeyboardClassServiceCallback实现键盘记录
/* */#ifndef _DBGHELP_H#define _DBGHELP_H 1#include #define dprintf if (DBG) DbgPrint#define nprintf DbgPrint#define kmalloc(_s) ExAllocatePoolWithTag(NonPagedPool, _s, SYSQ)//#define kf原创 2009-07-30 19:14:00 · 7101 阅读 · 0 评论 -
VC++实现进程冻结与解冻
冻结进程#include #include #include int main(int argc,char *argv[]){ PROCESSENTRY32 pe32; pe32.dwSize=sizeof(pe32); unsigned long Pid; HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCES原创 2009-07-30 18:41:00 · 3717 阅读 · 0 评论 -
系统底层ROOKIT拦截网络数据
#include "ntddk.h"// important!! place this before ndis.h#define NDIS40 1#include "ndis.h"#include "stdio.h"//////////////////////////////////////////////// prototypes for all our network callba原创 2009-06-26 11:31:00 · 3283 阅读 · 0 评论 -
让程序进入ring0级执行
在保护模式下,ring0有至高无上的权限,他一直是很多黑客程序员追求的目标,在NT平台上,MS对系统表格作了保护,不能在象win9x那样,去直接修改系统表格,但是还是有不少办法能够进入ring0的,例如,在国内,最早sinister利用编写驱动程序的方法进入ring0,这也是最通用的方法了,紧跟着WebCrazy又使用读写物理内存的方法来读写GDT所在的物理内存,在GDT上生成自己的调用门来随意原创 2009-06-08 16:27:00 · 10855 阅读 · 8 评论 -
PE可执行文件的镶入式程序后门开发
/* 利用异常结构处理搜索GetProcAddress入口地址 */ #include #include main() { _asm { call ex//取得当前地址以计算异常结构开始的地址 mov eax,0x7700原创 2009-06-08 00:00:00 · 3849 阅读 · 2 评论 -
vc++实现控制USB设备启用与否
#include #include #include //#include #pragma comment(lib, "setupapi.lib") //#pragma comment(lib, "shlwapi.lib") HDEVINFO hDevInfo = NULL; // 出错信息 void For原创 2009-06-05 14:15:00 · 7650 阅读 · 5 评论 -
vc++ 实现多线程断点续传
结合本人的FTP类,http类,实现多线程断点续传 // DownloadMTR.cpp: implementation of the CDownloadMTR class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "do原创 2009-04-16 10:45:00 · 5329 阅读 · 7 评论 -
vc++实现http下载的通用类
// DownloadHttp.cpp: implementation of the CDownloadHttp class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "downtest.h"#include "DownloadHttp原创 2009-04-16 10:44:00 · 8649 阅读 · 4 评论 -
VC++ 实现FTP下载的通用类
// DownloadFtp.cpp: implementation of the CDownloadFtp class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "downtest.h"#include "DownloadFtp.h"原创 2009-04-16 10:42:00 · 3752 阅读 · 1 评论 -
驱动拦截NT的API实现隐藏木马客户端
目前NT下有很多种隐藏文件和目录的方法,其中最简单的一种是给文件和文件夹加上系统属性和隐藏属性,操作系统就会不在显示了,而且查找也找不到了,但是这种方法一点都不彻底,没有可用性!下面我们来介绍用NT驱动程序来拦截NTAPI来实现彻底隐藏文件和目录的目的。NT下有一个文件NTDLL.DLL,大部分NTAPI都是在这个库中封装的。其中实现查找文件和目录的API接口是ZwQueryDirectoryF原创 2009-04-14 11:35:00 · 10708 阅读 · 1 评论 -
利用debug钩子拦截全局钩子,经典反黑客技术
// 键盘钩子消息处理过程LRESULT CALLBACK DebugProc ( int nCode, WPARAM wParam, LPARAM lParam ){ if ( nCode == HC_ACTION ) { PDEBUGHOOKINFO pDebugHookInfo = (PDEBUGHOOKINFO)lParam ; switch ( wParam ) { case W原创 2009-04-14 11:20:00 · 11743 阅读 · 3 评论 -
vc++HOOK API黑客外挂编程必知必会
#include // 定义API挂接项结构typedef struct _HOOK_ITEM { DWORD dwAddr ; // IAT项所在地址 DWORD dwOldValue ; // IAT项的原始函数地址 DWORD dwNewValue ; // IAT项的新函数地址} HOOK_ITEM, *PHOOK_ITEM ;HOOK_ITEM HookItem = {0}原创 2009-04-14 11:17:00 · 12746 阅读 · 0 评论 -
vc++进程注入钩子DLL通用模块开源
#include "stdafx.h"#include #include #include "stdio.h"#include using namespace std;#define DEF_BUF_SIZE 1024// 用于存储注入模块DLL的路径全名char szDllPath[DEF_BUF_SIZE] = {0} ;// 使用远程线程向指定ID的进程注入模块BOOL I原创 2009-04-14 11:11:00 · 10821 阅读 · 0 评论 -
去掉VC++2005、2008的安全警告提示
将过去的工程用VS2005打开的时候。你有可能会遇到一大堆的警告:warning C4996。比如:warning C4996: sprintf: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNIN翻译 2009-04-14 10:59:00 · 10895 阅读 · 2 评论 -
VC++实现局域网嗅探QQ号
#include #include #pragma comment(lib,"ws2_32.lib") #include #include #pragma comment(lib, "rasapi32.lib")#include #pragma comment(lib, "WinInet.LIB")#include #pragma comment(lib,"vfw32.lib"原创 2009-04-09 16:08:00 · 15191 阅读 · 67 评论 -
vc++实现无进程无DLL无硬盘文件无启动项的ICMP后门后门程序
客户端 #include #include #include #pragma comment(lib,"ws2_32.lib")char SendMsg[256];/* The IP header */typedef struct iphdr {unsigned int h_len:4; //4位首部长度unsigned int version:4; //IP版本号,4表示I原创 2009-03-29 18:42:00 · 9692 阅读 · 2 评论 -
vc++实现文件传送
发送#include #include #pragma comment(lib, "ws2_32.lib")void main() {// 初始化 WSADATA wsaData; int iResult = WSAStartup( MAKEWORD(2,2), &wsaData ); if ( iResult != NO_ERROR ) printf("E原创 2009-03-29 18:40:00 · 3529 阅读 · 1 评论 -
vc++实现文件关联
#include #include int main(int argc,char *argv[]){MessageBox(NULL,"Hello",NULL,MB_OK);char temp[256];memset(temp,0,256);if(argc!=1){int length =strlen(argv[1]);char *ch=(char *)malloc(length);strcpy(c原创 2009-03-29 18:39:00 · 2746 阅读 · 0 评论 -
vc++防止多次运行
#include#includeint main(int argc,char *argv[]){HANDLE hMutex;DWORD dwErr;hMutex=CreateMutex(NULL,//无安全描述FALSE,//没有所有者 "HACK");//对象名 if(hMutex==NULL)//hMutex为NULL标示创建失败{MessageBox(NULL,"CreateMu原创 2009-03-29 18:39:00 · 2623 阅读 · 0 评论 -
VC++实现多线程ddos
#include #include #include #pragma comment(lib,"ws2_32.lib")#define SEQ 0x28376839int threadnum,maxthread,port;char *DestIP;//目标IPvoid display(void) // 定义状态提示函数 { static int play=0;// 进度条 cha原创 2009-03-29 18:37:00 · 3337 阅读 · 1 评论 -
VC++实现数据包过滤(防火墙原理)
#include "stdafx.h"#include "xpktfilter.h"#include "xpktfilterDlg.h"#include "./xpktfilterdlg.h"#ifdef _DEBUG#define new DEBUG_NEW#endif#pragma comment(lib,"iphlpapi.lib")// CxpktfilterDlg 对话框原创 2009-03-29 18:35:00 · 6337 阅读 · 2 评论 -
VC++实现SYN扫描
#include #include #include #include #include "mstcpip.h"#pragma comment(lib,"ws2_32.lib")#define SEQ 0x28376839SOCKET sockRaw = INVALID_SOCKET,sockListen = INVALID_SOCKET;struct sockaddr_in dest;原创 2009-03-29 18:33:00 · 5255 阅读 · 3 评论 -
VC++多线程tcp connect扫描
#include #include#include #pragma comment(lib,"ws2_32.lib")char *host;int threadnum,maxthread,totalport;long nowport;TIMEVAL timeout;FD_SET mask;void usage(char *name){printf("/t============原创 2009-03-29 18:31:00 · 3792 阅读 · 1 评论