函数指针赋值
来源:互联网 发布:js 字符串转对象 编辑:程序博客网 时间:2024/05/22 12:21
在远程注入的时候特别需要给函数指针赋值。
有以下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;}
- 函数指针赋值
- 函数指针的赋值形式
- 类中函数指针的赋值
- 函数的指针如何说明、赋值、调用
- 通过函数给指针赋值(一)
- 函数的指针如何说明、赋值、调用
- 函数指针的赋值与调用
- 函数指针和赋值 回调函数
- 指针赋值
- 指针赋值
- 指针赋值
- 函数内空指针调用其他函数赋值
- 析构函数调用 堆指针 删除时 赋值NULL
- 想法:指针与拷贝构造函数.类赋值操作符
- c++中如何通过函数参数对指针进行赋值
- c++中如何通过函数参数对指针进行赋值
- C++类 给结构体成员 函数指针 赋值
- 函数指针在结构体中的赋值方法
- poj1321
- 如何判断是否启用了OpenGL硬件加速
- 关于Extjs2.0日期控件(DateField)在FireFox3下过长的解决办法
- FPGA_TPMS_10_11
- Ubuntu 12.04安装QQ2012
- 函数指针赋值
- Oracle学习笔记安装篇之在Redhat Enterprise Linux 6.3 x86_64下安装Oracle11g R2
- 收藏的关于算法博客链接
- TI DSP C6000 功能单元和执行操作
- 工作
- 线段树 成段更新
- linux下tar压缩使用
- 一片牧草,草每天生长的速度相同,这片牧草可供27头牛吃6天,可供46只羊吃9天,如果一头牛的吃草量等于2只羊的吃草量,那么11头牛和20只羊一起吃可以吃多少天?
- MSSQL笔记七