栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

注册表注入RegInject(dll)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

注册表注入RegInject(dll)


// RegInject.h

#pragma once

// RegInject 对话框

class RegInject : public CDialogEx

{

    DECLARE_DYNAMIC(RegInject)

public:

    RegInject(CWnd* pParent = NULL);   // 标准构造函数

    virtual ~RegInject();

// 对话框数据

    enum { IDD = IDD_DIALOG6 };

protected:

    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

    DECLARE_MESSAGE_MAP()

public:

    CString m_strDllPath;

    afx_msg void OnBnClickedButton1();

    afx_msg void OnBnClickedButton2();

};

// RegInject.cpp

// RegInject.cpp : 实现文件

//

#include "stdafx.h"

#include "MyInjectTool.h"

#include "RegInject.h"

#include "afxdialogex.h"

// RegInject 对话框

IMPLEMENT_DYNAMIC(RegInject, CDialogEx)

RegInject::RegInject(CWnd* pParent )

    : CDialogEx(RegInject::IDD, pParent)

    , m_strDllPath(_T(""))

{

}

RegInject::~RegInject()

{

}

void RegInject::DoDataExchange(CDataExchange* pDX)

{

    CDialogEx::DoDataExchange(pDX);

    DDX_Text(pDX, IDC_EDIT1, m_strDllPath);

}

BEGIN_MESSAGE_MAP(RegInject, CDialogEx)

    ON_BN_CLICKED(IDC_BUTTON1, &RegInject::OnBnClickedButton1)

    ON_BN_CLICKED(IDC_BUTTON2, &RegInject::OnBnClickedButton2)

END_MESSAGE_MAP()

// RegInject 消息处理程序

void RegInject::OnBnClickedButton1()

{

    // TODO:  在此添加控件通知处理程序代码

    char szFilter[] = "动态链接库|*.dll";

    CFileDialog fileDlg(TRUE, "dll", NULL, OFN_HIDEREADonLY | OFN_OVERWRITEprompt, szFilter);

    UpdateData(TRUE);

    if (fileDlg.DoModal() == IDOK)

    {

        m_strDllPath = fileDlg.GetPathName();

    }

    UpdateData(FALSE);

}

void RegInject::OnBnClickedButton2()

{

    // TODO:  在此添加控件通知处理程序代码

    BOOL bRet = FALSE;

    HKEY hKey = NULL;

    LONG nReg;

    char szDllPath[MAX_PATH] = { 0 };

    //打开HKEY_LOCAL_MACHINE/Software/Microsoft/WindowsNT/CurrentVersion/Windows

    nReg = RegOpenKeyEx(HKEY_LOCAL_MACHINE,

        "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows",

        0,

        KEY_ALL_ACCESS,

        &hKey);

    if (nReg != ERROR_SUCCESS)

    {

        MessageBox("打开注册表失败");

        RegCloseKey(hKey);

        return;

    }

    //设置AppInit_DLLs的键值为我们的Dll

    nReg = RegSetValueEx(hKey,

        "AppInit_DLLs",

        0,

        REG_SZ,

        //(byte *)m_strDllPath.GetBuffer(0),

        NULL,

        m_strDllPath.GetLength()

        );

    if (nReg != ERROR_SUCCESS)

    {

        MessageBox("设置注册表失败!");

        RegCloseKey(hKey);

        return;

    }

    RegCloseKey(hKey);

    return;

}

©著作权归作者所有:来自51CTO博客作者土匪猿的原创作品,如需转载,请注明出处,否则将追究法律责任

每一份赞赏源于懂得


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/232764.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号