</pre><pre name="code" class="cpp">// HookMsgBox.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "windows.h"
#include <iostream>
#include <string>
using namespace std;
// MessageBoxW函数原型
// int WINAPI MessageBoxW(__in_opt HWND hWnd,__in_opt LPCWSTR lpText,__in_opt LPCWSTR lpCaption,__in UINT uType);
typedef int (WINAPI* MsgBox)(HWND, LPCWSTR, LPCWSTR, UINT);
MsgBox SysMsgBox = NULL; // 指向user32下的MessageBox
FARPROC fpSysMsgBox = NULL; // FARPROC 是一个4字节指针,指向一个函数的内存地址
BYTE byteSysMsgOEP[5]; // 系统MessageBox入口代码
BYTE byteMyMsgOEP[5]; // 自定义MessageBox入口代码
HANDLE hProcess = NULL; // 本应用程序句柄
HINSTANCE hInstance = NULL; // dll文件句柄
// 初始化得到本应用程序句柄
void Init()
{
DWORD dPid = GetCurrentProcessId();
hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, dPid);
}
/// 开始hook
void StartHook();
/// 停止hook
void StopHook();
/// 获得系统MessageBox入口代码
void GetSysMsgBox
Hook自定义MessageBox
最新推荐文章于 2024-07-16 14:48:50 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)