黑基网 首页 学院 编程开发 查看内容

简单的注入汇编——别人的程序弹出我们的对话框(必学)

2017-3-12 12:41| 投稿: xiaotiger |来自: 互联网

摘要: 今天教大家一个简单的汇编应用,写入汇编代码,来实现别人的程序弹出我们的对话框!我们知道一个程序弹出对话框,利用的是MessageBoxA这个API我们看下API的定义:Declare Function MessageBox Lib "user32" Alia ...

今天教大家一个简单的汇编应用,写入汇编代码,来实现别人的程序弹出我们的对话框!

我们知道一个程序弹出对话框,利用的是MessageBoxA这个API

我们看下API的定义:

Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long

调用MessageBoxA这个API需要传入四个参数,分别是句柄(整数型),对话框内容(文本型),对话框标题(文本型),对话框样式(整数型)

我们知道当句柄为0时默认是自己的程序句柄,对话框样式也可以为0

准备工具:记事本,代码注入器,CE(全称Cheat Engine)

  1. 打开记事本,打开CE,CE加载记事本

CE加载记事本句柄

2.CE中构造一会我们需要的对话框的标题和内容。我们以00010100内存地址为例(这个不固定可随意),在这个地址中写入文本型的“技术小成”,一会我们需要用到!

构造参数内容和标题

3.接下来获取MessageBoxA的内存地址!我们获取到77C2EA99这个内存地址为MessageBoxA的内存地址。当然如果编程的时候我们可以用GetProcAddressLoadLibrary这两个API来获取!

获取API的内存地址

4.我们打开代码注入器,加载记事本进程(类似CE操作)然后输入以下汇编代码。

push 0

压入参数0 (句柄=0)

mov eax,00010100

把00010100的文本型内容传入到寄存器EAX中

push eax

压入 eax(相当于设置对话框内容为“技术小成”)

mov eax,00010100

把00010100的文本型内容传入到寄存器EAX中

push eax

压入 eax(相当于设置对话框标题为“技术小成”)

push 0

压入0(相当于设置对话框样式为0)
call 77c2ea99

call 77c2ea99(相当于call MessageBoxA)

retn

子过程返回

完整汇编代码

5.OK!我们用代码注入器,点击注入远程代码!我们来看效果!

效果图

这就是简单的汇编应用!当然还可以有更多的玩法!比如实现按Q键回血,我们反汇编修改为按Q键打怪!

原理和这个相同,大家可以自行尝试!


本文为技术小成原创,欢迎转载,转载请注明出处!

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:http://www.toutiao.com/a6396387551351062786/

免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部