函数指针赋值

函数指针赋值在远程注入的时候特别需要给函数指针赋值。 有以下2种方法,第一定义方法。主要用于给大量同参数的函数注入。 #include”stdafx.h”#include”windows.h”typedefint(_stdcall*p_MessageBoxA)(HWNDhWnd,LPCSTRlpText,LPCSTRlpCaption,UINTuType)

大家好,又见面了,我是你们的朋友全栈君。

在远程注入的时候特别需要给函数指针赋值。

 

有以下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://javaforall.net/157511.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 想自学Java的速来!孙鑫视频教程百度云盘

    想自学Java的速来!孙鑫视频教程百度云盘MySQL数据库最佳学习线路脑图:一、对MySQL的认识认识Mysql数据库下载安装MySQL软件在Linux系统环境下安装MySQLMySOL体系结构与存储引擎MySQL体系结构QueryCache详解存储引擎InnoDB体系结构InnoDB的三大特性.数据库文件参数文件参数类型错误日志文件(errorlog)二进制日志文件(binarylog)慢查询日志(slowlog)全量日志(generallog)审计日志(auditlog)

    2022年5月16日
    33
  • 固态硬盘开盘数据恢复的方法是_硬盘数据恢复原理

    固态硬盘开盘数据恢复的方法是_硬盘数据恢复原理在电脑的使用中有时因为一些不当的操作会导致固态硬盘损坏,有的网友就在现实中遇到了这种情况,咨询小编固态硬盘开盘数据恢复的方法,下面小编就将怎么恢复固态硬盘数据教给大家。更多一键重装系统的方法在这里工具/原料系统版本:win10教育版品牌型号:华为MateBookXPro方法一、固态硬盘开盘数据恢复的方法1、怎么恢复固态硬盘数据呢,首先可以查看回收站,如果被删除的数据还在回收站里点击还原即可。方法二、固态硬盘开盘数据恢复的方法1、下载安装嗨格式数据恢复大师,在首界面选择恢复模式和文件存储位置,点击扫描,

    2022年9月20日
    0
  • Java设计模式之行为型:备忘录模式

    Java设计模式之行为型:备忘录模式

    2021年10月4日
    40
  • 史上最全ASCII码对照表0-255(%d)

    史上最全ASCII码对照表0-255(%d)十进制代码 十六进制代码 MCS字符或缩写 DEC多国字符名 ASCII控制字符1 0 0 NUL 空字符 1 1 SOH 标…

    2022年6月24日
    53
  • SSD网络原理解析[通俗易懂]

    SSD网络原理解析[通俗易懂]SSD网络是继YOLO之后的one-stage目标检测网络,是为了改善YOLO网络设置的anchor设计的太过于粗糙而提出的,其设计思想主要是多尺度多长宽比的密集锚点设计和特征金字塔,下面我将详细的解析SSD网络结构SSD网络结构精简版详细版通过上面这个图,大家可以清楚的看到SSD的网络结构主要分为以下几个部分:VGG16BaseLayer ExtraFeatureLayer DetectionLayer NMS补充说明:在整个SSD网络中,其…

    2022年10月23日
    0
  • TaskScheduler_taskset -p

    TaskScheduler_taskset -p目录1、DAGScheduler与TaskScheduler2、TaskScheduler与SchedulerBackend3、任务调度过程总结1、DAGScheduler与TaskSchedulerDAGScheduler面向我们整个Job划分出了Stage,划分了Stage是从后往前划分的,执行的时候是从前往后,每个Stage内部有一系列任务,Stage里面的任务是并…

    2022年10月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号