大家新年好哇~~
本次例子中,我將演示如何定位 MessageBoxA 函數,並以此來使用。
我們先查下MSDN對於它的定義:
MSDN對於它的定義很清楚,OK,拿來稍微修改一下就可以使用了,現在開始寫代碼:
// MessageBox 原函數
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
修改成:
//這裏改成 MessageBoxA2 是爲了防止重複
typedef int (NTAPI *MessageBoxA2)(
HWND hWnd,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType);
完整代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
typedef int (NTAPI *MessageBoxA2)(
HWND hWnd,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType);
int main()
{
MessageBoxA2 myFunc;
myFunc = (MessageBoxA2)GetProcAddress(LoadLibraryA("user32.dll"), "MessageBoxA");
myFunc(0, "Hola", " ", MB_OK);
system("pause");
return 0;
}
效果圖: