函数指针赋值

函数指针赋值在远程注入的时候特别需要给函数指针赋值。 有以下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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157511.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 网络恐怖袭击真实存在吗知乎_911恐怖袭击事件真实过程

    网络恐怖袭击真实存在吗知乎_911恐怖袭击事件真实过程作者:zdnet.co.uk2005-06-0705:0PM网络恐怖主义是一种真的存在的威胁还是仅仅是网络安全日常维护工作中的一种困惑?”我们的敌人将使用我们的技术来和我们做斗争…事实是他们可能来自于第三世界国家,他们不会以任何方式告诉我们,他们不会使用哪些技术以及他们将会用何种方式使用我们的技术。他们将会发现那些我们应该构建安全但是我们没有考虑到的地方,然后他们就会利用这些漏洞。”本

  • pycharm的python环境配置_怎么安装pycharm及环境变量配置

    pycharm的python环境配置_怎么安装pycharm及环境变量配置1.python安装(目前我用的是Anaconda环境,够用,等遇到问题没办法了再装python,然后再写这部分内容。看到这的朋友要谨慎些,别被我误导了)2.Pycharm环境变量配置点击createnewproject进入项目配置页面:或者:即:Pycharm自动加载的环境为虚拟环境,不建议初学者使用,因为后期很多安装的模块和包只能在虚拟环境中使用。点击上图编号3之后会进入下图显示的内容,我们选择左侧systeminterpreter,在显示的路径中…

  • phpstorm2021.11激活码【2021免费激活】[通俗易懂]

    (phpstorm2021.11激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~92U4ILM59M-eyJsaWNlb…

  • linux sftp和ftp的区别在哪?

    linux sftp和ftp的区别在哪?sftp和ftp

    2022年10月23日
  • git的使用步骤_git版本控制

    git的使用步骤_git版本控制git基本使用步骤git工作区、暂存区和本地仓库理解:https://blog.csdn.net/qq_39588003/article/details/106991551目录git基本使用步骤一、安装git二、配置git三、初始化本地仓库四、将当前目录的文件纳入版本控制五、查看仓库当前文件提交状态一、安装git在网上下载git,并安装安装完成后,如下图:右键鼠标会有GitGUIHere和GitBashHere二、配置git在git.

  • noclassdeffounderror:org/apache_apache server at port 80

    noclassdeffounderror:org/apache_apache server at port 80web新人一个,写在这里的是我犯过的错误,如果有老兄和我一样倒霉可以试试,我的这个方法。说正题吧,我在使用Axis2发布我接口的三个方法时报错1、首先在服务端直接编写了测试类调用接口的方法,结果是完全正确2、然后我又在客户端写了一个测试类调用接口的方法,这次失败了,我通过这个错误报文找了很多博客都没能解决客户端测试类报的错误(这似乎没啥用,不够详细)org.apache.a…

发表回复

您的电子邮箱地址不会被公开。

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