函数指针赋值

函数指针赋值在远程注入的时候特别需要给函数指针赋值。 有以下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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 武侠世界中的ERP乱弹[通俗易懂]

    1990年一位威力大侠(Wylie)发明了ERP,它内通百窍(企业各个业务部门),外通天地二气(客户,供应商),彻底摆脱了原先MRP,MRPII对人体的约束,从此武侠世界进入了新的篇章,各式奇功妙法,各路英雄豪杰辈出,好一派繁荣盛世!二十几年的血雨腥风过去了,江湖格局日趋稳定。天下以五派为尊,分别是SAP,Oracle,Sage,Infor,Microsoft,其它小门小派,不一一细数。作

    2022年4月7日
    37
  • JavaFX+Jfoenix 学习笔记(四)–MenuBar菜单栏

    JavaFX+Jfoenix 学习笔记(四)–MenuBar菜单栏1、菜单栏,如图2、实例-1,最简单且简陋的菜单栏packagezkh.javafx.learn.menubar;importjavafx.application.Application;importjavafx.geometry.Pos;importjavafx.scene.Scene;importjavafx.scene.control.Label;i…

    2025年7月2日
    4
  • 数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模

    数仓分层(ODS、DWD、DWS、DWT、ADS)和数仓建模文章目录一、数仓分层数仓概念ODS(原始数据层)做了哪些事DWD(明细数据层)做了哪些事DWS(服务数据层)做了哪些事DWT(主题数据层)做了哪些事ADS(应用数据层)做了哪些事二、数仓建模常用的建模工具ODS层DWD层DWS层DWT层ADS层一、数仓分层数仓概念什么是数仓:数据仓库是为企业所有决策制定过程,提供所有系统数据支持的战略集合。通过对数据仓库中数据的分析,可以帮助企业改进业务流程、控制成本、提高产品质量等。数据仓库并不是数据的最终目的地,而是为数据最终的目的地做好准备。这些准

    2022年6月26日
    62
  • databus mysql搭建_Databus架构分析与初步实践(for mysql)

    databus mysql搭建_Databus架构分析与初步实践(for mysql)目前关于databus的相关资料较少,特别是针对mysql的文档尤为稀少。本篇文章中介绍了databus相关组件及实现原理,初步实现了databus对mysql数据库的数据抓取,希望对后续使用者能提供一定的参考作用。1.简介Databus是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。由LinkedIn于2013年开源。Databus通过挖掘数据库日志的方式,将数据库变更实时、可…

    2022年10月16日
    2
  • phpstorm2021激活码3月最新在线激活[通俗易懂]

    phpstorm2021激活码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    42
  • InstallShield 2010打包

    InstallShield 2010打包打包安装文件。本例子在VS2010下完成,对应的InstallShield2010版的打包程序。如果已安装InstallShield2010,会在VS2010中有体现。新建项目,在已安装的模板中选

    2022年7月2日
    24

发表回复

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

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