在远程注入的时候特别需要给函数指针赋值。
有以下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;
}
今天的文章函数指针赋值分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/7308.html