赞
踩
上两篇易语言对x64位进程操作的技术贴发出后,因为得知我们 Game-Ec 驱动模块8.5.3里
开发了对x64程序进程里的模块,API取地址,内存读写,内存搜索,函数hook,call函数调用等诸多命令功能后,很多写64位游戏辅助的学员激动不已。
因为这些功能预示着写64位游戏辅助不用换其他语言来写了,有了这次版本里加入的各种x64功能,易语言可以完美的开发64位游戏内存辅助了,因为可以读写内存数据,可以HOOK,可以内存搜索,最关键的是还可以远程调用x64程序进程里的指定call执行x64汇编代码。
今天就来示范讲解下这次我开发加入的 调用64位程序进程里的call的命令:
x64进程_调用函数()
这个命令有两个参数,
进程ID //目标x64位进程ID
x64汇编 //执行call的x64汇编代码
这个命令,之前一直不够稳定,所以一直测试,后来经过黑,色,衬,衣他的改良修改指点,现在完美了
({:101_195:}都怪黑色,衬,衣他太忙,不然这篇帖子能早出,哈哈)。
写法和我们已经出版的系列辅助视频教程啊教的写32位程序CALL一样简单。
首先我用vs2020写了个64位程序(mfcapplication1.exe),来作为示范用(当做64位的游戏)
布局:

程序源代码:
这个64位程序,主要功能就是构建了一个call功能:add ( ) 加法函数
然后计算出2个数的和
首先我们要来逆向分析下我写的这个X64位程序,找出我们要调用的CALL,
既然是64位程序,当然就需要个64位DUG调试工具(类似我们的OD)
我用的是 x64dbg.exe
附加我的64位程序:mfcapplication1.exe 后
我们在x64dbg.exe 工具命令栏目输入 bp MessageBoxA 来对 信息框API进行函数断点,因为方便定位,我就在源码里加了 MessageBoxA 信息框
这样我们单击 确定 按钮时候 就会断下来,然后好快速分析到 我们这个64位示范程序的 确定 按钮call函数
找到了这里:

从上面反汇编代码 右边的注释来看,有我们信息框的标题和内容字符,可以肯定现在我们断在了 MessageBoxA 调用位置。
但是我们要找的是 确定 按钮CALL,所以应该在这个call的上一层,所以返回上一层看看
来到了:

经过F2设置断点后,运行示范程序mfcapplication1.exe,点击确定按钮会被断下来,而且测试几次所mov的几个寄存器的值也是固定的不改变
所以这个应该就是我们要找的 确定 按钮call,
梳理这个call的代码为:
mov rax,000000013F8DAB90
mov rcx,000000000028F020
mov rax,000000013F8DAB90
call 13F8E7EF8
接下来就是写调用它的易语言代码了
因为我们的辅助是用易语言写,代码很简单
如下:

调用call的:

sub rsp,38
。。。。。。。
。。。。。。。
add rsp,38
ret
上面代码中的这开头和结尾这3句必须要写,因为x64汇编是必须写上的噢,否则会奔溃。
下面我们来看调用效果:

可以完美的调用64位程序(mfcapplication1.exe)进程里的指定CALL,好了,这节 就到这里。
更多易语言X64进程操作的技术到:http://bbs.dult.cn/forum.php?mod=viewthread&tid=24053 学习
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。