吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 28972|回复: 32
收起左侧

[其他原创] 安卓版按键精灵内存读取游戏人物的坐标详细教程

  [复制链接]
打字的小强 发表于 2019-4-16 22:34
本帖最后由 打字的小强 于 2019-4-17 08:35 编辑

按键精灵手机官方一直表示按键精灵为绿色软件,官方论坛会屏蔽掉相关讨论。而且市场上只有某猿的教程,感觉用按键精灵写的内存脚本现在还没有推广开来,大多数人都是不清楚,很多人用GG自带的lua或者Xscript来实现功能。手游脚本其实还是按键精灵用的人比较多,对新手比较友好,好上手。我来给大家稍微解密一下,我也是初学者。只是想重现一下自己的思路,巩固一下。先不从基址和特征码入手,先直接讲命令的内容。
惯例先上效果图勾引.
23.gif
现在就说一下内存搜索,单独的内存搜索.看下官方的例子
QQ截图20190416194336.png
先简述一下官方的例子。使用固定的两个内存地址的值来找特征然后根据这个特征值找附近想要找的数据
tb1就是特征1,tb2就是特征2,根据他们的距离,就是offset,在游戏这个进程里搜索内存,(就像按键精灵的多点找色,找十个点,规定第一个点的坐标颜色,规定第二点的坐标和第二个点的的颜色,依次在截图的数据里面找符合这些特征点的位置,找到了返回第一个点的坐标。)找到了之后就会返回特征1的内存地址,然后根据特征1的内存地址读取自己想要的相关的数值。(其实也可以设置很多特征。一般两个三个就可以了)
我们要用到雷电模拟器和GG修改器。因为只说内存搜索这一条命令所以就不说用CE在外部搜索了,CE也可以搜出来,但是大多数是找特征码这个功能。
找一个游戏吧,只要有坐标的游戏就差不多可以,目前大多数手游还是没有保护的,不像端游,一搜就崩溃封号啥的,不过后期肯定会加强的。
打开游戏,打开GG的搜索框,有一点点常识的人都知道坐标值是一个浮点数,在手游里面来说最主要的搜的就是人物的状态,怪物的状态和地图的状态,浮点数分为双精度,和单精度,双精度就是存在计算机内存里面的位置大一点,占用8个字节,能精确到小数点后面十几位,单精度只能精确到小数点的后面几位,占用4个字节。
QQ截图20190416212102.png
第一次搜索就输入坐标范围选择浮点数点击新搜索。
QQ截图20190416212355.png
QQ截图20190416212230.png
第一次回搜索到很多。搜索到了1W+
QQ截图20190416212454.png
现在来走动一下,再点击GG悬浮窗,点击搜索,填入39~41,类型不变点击改善
QQ截图20190416212748.png
QQ截图20190416212937.png
现在只有100多个了。接下来就是一样的套路了。走动一下,重新输入范围值搜索一下。
QQ截图20190416213001.png
经过几轮走路搜索。走路搜索,剩下只20多个,我们来随便找个数据跳转到此地址看一下,比如这个886F9040这个地址。一般X坐标和Y坐标在一起。
QQ截图20190416213454.png

对比一下地图上显示的X坐标和Y坐标。现在就可以发现游戏显示的坐标是浮点数四舍五入的方式显示的。886F9040这个是存放X地址信息的地址。16进制的。下面的886F9048是存放Y地址信息的地址。他们地址相减的间隔是为8.X坐标地址后面的比如421E82B5h这个数据16进制转10进制浮点数就是39.67451858521。转10进制整数就是1109308085。后面的后最h就代表这个数据是16进制的。
QQ截图20190416215008.png QQ截图20190416215203.png
然后39.674518588521F,后面的F应该就是代表浮点数。大F就是双精度的,11093080B5D,后面的D就是代表Dword,就是十进制整数.
QQ截图20190416213631.png
好,接下来就写代码了,我在代码里写备注比较好懂,因为这是直接查找内存地址,内存地址在重启游戏会变的。所以这里只是讲命令。只有特征码和基址在重启游戏的时候不会变。在游戏更新的时候会变吧。

[Asm] 纯文本查看 复制代码
 
Dim 当前应用包名,X坐标,Y坐标
当前应用包名 = sys.GetFront()
TracePrint 当前应用包名
Dim addr = "0x7"//开始搜索的起始值,我们要找的X坐标信息的地址为886F9040,我们可以填0x7,比8小一点。因为在特征码定位和基址定位中地址是不变的,所以作用是用来加快搜索速度
Dim tb1 = {"lv":1109308085} //第一个特征点的坐标,我们就拿X坐标的值来。显然有点画蛇添足,其实直接拿X坐标地址去读内存就直接获取X坐标的值了
Dim tb2 = {"lv":1116455199,"offset":8}//第二个特征点的坐标。GG里面Y坐标的地址比X坐标地址大,偏移就是为正数
Dim tb = {tb1, tb2}
Dim t = TickCount()//按键自带命令,计算内存搜索时间的
Dim A = Sys.MemorySearch(当前应用包名, True,addr, tb, "i32",0,1)//这里的True代表新搜索,显然第一次是新搜索,i32的意思就是特征点的数据类型tb1和tb2这两个键表值的类型,i就是int,1109308085和1116455199,是32位整数型,0代表搜索范围,0为最广,1是搜索次数。只搜索一次。
//返回的A为一个数组。可能在数组中会搜索到很多结果,一般以数组第一个为准,所以搜索到保存A坐标的信息的地址是是A(0)
TracePrint "搜索地址为:"&A(0)&",耗时"&(TickCount()-t)
//此时A(0)应该是为16进制的地址字符串,偏移为10进制数据,要把结果转换成10进制数值加上偏移再转成16进制的数据。最后转成字符串才能在内存搜索这个命令里面去使用
Dim X地址 = 地址相加(A(0), 0)//该函数下面有注释
Dim Y地址 = 地址相加(A(0), 8)
TracePrint X地址 //6进制的地址字符串
Do

X坐标 = Sys.MemoryRead(当前应用包名, X地址, "f32")//我们GG搜索到的值为双精度浮点数,所以为f32,这里大小写应该不敏感,官方的提示全部是大写。我用小写也可以搜到
TracePrint X坐标 //输出X的浮点数坐标值

Y坐标 = Sys.MemoryRead(当前应用包名, Y地址, "f32")
TracePrint Y坐标//输出Y的浮点数坐标值
ShowMessage "x坐标为:"&X坐标&"\ny坐标为"&Y坐标//页面直接显示一下
        Delay 300//循环读取加点间隔
Loop

Function 地址相加(地址, 偏移)
    Dim A = Right(地址,Len(地址)-2)//去掉16进制左边的0x
    Dim B = Clng("0x"&A)//把这个16进制数据强制转换成十进制整型
    Dim C = B+偏移 //结果加偏移
    Dim D = Hex(C) //强制转16进制
    Dim E = "0x"&D //加上0x,转成字符串
    地址相加 = E
End Function
 


QQ截图20190416221821.png

到此结束了,简单的内存读取。引用了一点特征码的感觉,大神勿喷,新手娱乐玩玩。第一次接触内存这里还是觉得很神奇的

免费评分

参与人数 7吾爱币 +6 热心值 +6 收起 理由
www8596 + 1 本套系统教程可以关注类人猿 www.yolua.com 安卓内存课程
lsrteam70 + 1 + 1 谢谢@Thanks!
yuxyin10 + 1 我很赞同!
clemu + 1 + 1 用心讨论,共获提升!
853679185 + 1 + 1 感谢大佬,解决了多年的疑惑
白陌陌 + 1 + 1 很有用 感谢楼主!
debug_cat + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 打字的小强 发表于 2019-4-17 10:35
yuxyin10 发表于 2019-4-17 10:18
按键精灵为什么不被推荐,打开按键精灵APP那一瞬间,就决定了它的命运了。广告、以及注册制度,这些都是被 ...

啥一瞬间啥快时代,按键精灵带让很多新手入行,并学到了很多知识,赚到了很多钱,存在即合理,能快速解决问题的工具就是好工具,除非有更好更适合大家的语言或者出现。
yuxyin10 发表于 2019-4-17 21:56
打字的小强 发表于 2019-4-17 10:35
啥一瞬间啥快时代,按键精灵带让很多新手入行,并学到了很多知识,赚到了很多钱,存在即合理, ...

相对于手机版按键精灵来说,并不友好,和例如:GameGuardian之类的比较,手机版按键精灵,我是无力吐槽了。
为海尔而战 发表于 2019-4-16 22:46
aa2632898 发表于 2019-4-16 23:09
刚好想学习  有套教材就好了
丿终结者 发表于 2019-4-16 23:47
看着复杂,楼主厉害
城儿 发表于 2019-4-16 23:53
楼主大神 厉害
mink0325 发表于 2019-4-17 07:37
膜拜大神,学习提高!
Quincy379 发表于 2019-4-17 08:35
学习大神,支持楼主!
bester 发表于 2019-4-17 08:39
怎么感觉按键的代码有点像vb
 楼主| 打字的小强 发表于 2019-4-17 09:00
bester 发表于 2019-4-17 08:39
怎么感觉按键的代码有点像vb

就是lua和VB改的
幻象 发表于 2019-4-17 10:15
我记得电脑上只有联网才能生成小精灵对吧?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 04:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表