大家好,又见面了,我是你们的朋友全栈君。
在远程注入的时候特别需要给函数指针赋值。
有以下2种方法,
第一定义方法。主要用于给大量同参数的函数注入。
#include "stdafx.h"
#include "windows.h"
typedef int (_stdcall * p_MessageBoxA)(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType) ;
int _tmain(int argc, _TCHAR* argv[])
{
p_MessageBoxA My_M;
FARPROC Func_add;
Func_add=GetProcAddress(LoadLibraryA("user32.dll"),"MessageBoxA");//获取该函数的地址
My_M =(p_MessageBoxA) Func_add;
My_M(NULL,"PLC报警!","对话框",MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1|MB_SYSTEMMODAL);
return 0;
}
第二种方法 直接定义一个函数指针,并给这个指针赋值。
#include "stdafx.h"
#include "windows.h"
int (_stdcall * p_MessageBoxA)(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType) ;
int _tmain(int argc, _TCHAR* argv[])
{
FARPROC Func_add;
Func_add=GetProcAddress(LoadLibraryA("user32.dll"),"MessageBoxA");//获取该函数的地址
p_MessageBoxA =(int (__stdcall *)(HWND,LPCSTR,LPCSTR,UINT))Func_add;
p_MessageBoxA(NULL,"PLC报警!","对话框",MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1|MB_SYSTEMMODAL);
return 0;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157511.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...