安卓内存教程技术交流(一):内存特征码读写原理分析

技术研究:安卓内存很少人关注,下面 类人猿就讲解一些见到的安卓内存辅助方法和思路
特征码定位是最蠢的办法,但是也是最简单最容易实现。其他方法可以关注我的帖子。

类人猿内存实现功能:大家都知道安卓实现找坐标要识别数据,要制作字库找图找色,可能要很多尝试调试,还要加各种算法等一些麻烦的东西,如果用内存反而简单的,可能你在几分钟之内就能够把坐标、地图名字、人物相关属性、怪物类型等完美识别。而且非常的精准,几乎不会出现错误,准确率是99.99%。这就是内存的好处。

内存识别优点:1.识别速度快(识别坐标字体只要0.01秒)  2.精准稳定   3.节省判断测试脚本的时间

1.下面的例子是某网游,模拟器测试用海马,其他模拟器也可以的。

<<<<<<<<<目标:找到坐标值,并且内存定位,防止数据更新<<<<<<<<<<<<<<<<<<<<<<<<<
安卓内存教程技术交流(一):内存特征码读写原理分析_第1张图片

2.实操读取坐标:整理我就用下面的游戏来给大家做一个简单的演示。我再次声明我没有修改游戏任何数据。

大家可以通过烧饼等工具搜索查找相关的数据。有检测就换其他搜索工具。这里假如坐标浮点数搜索40.通过变化来获取的,具体情况具体分析。另外注意这个游戏的坐标是浮点数f32,显示的时候不会四舍五入的。如:X坐标18.9333725,显示18整数。 搜索注意数据类型是dword整数还是float和double等。
安卓内存教程技术交流(一):内存特征码读写原理分析_第2张图片

3.下面这张图是查看地址相对应的内存区域。我们分析相关数据那些是不变的。
安卓内存教程技术交流(一):内存特征码读写原理分析_第3张图片

4.红色的就作为内存特征码进行搜索。

下面的语法应该是个类似链表的地址结构。应该可以理解为双向搜索。

Dim tb1 = {“lv”:3143286320} //这两个是特征码,链表

Dim tb2 ={“lv”:3142551167,“offset”:4} //4是地址排序偏移

安卓内存教程技术交流(一):内存特征码读写原理分析_第4张图片

5.直接上源码给大家学习!

Dim 当前应用包名

当前应用包名 =sys.GetFront()

TracePrint 当前应用包名

Dim addr = "0xb0000000"

Dim tb1 = {"lv":3143286320}

Dim tb2={"lv":3142551167,"offset":4}

 
Dim tb = {tb1,tb2}

Dim t = TickCount()

Dim Addr_Search = Sys.MemorySearch(当前应用包名,True,addr,tb, "i32",0,5)

Dim 坐标地址X = 地址相加(Addr_Search(0),16) // 坐标x

TracePrint 坐标地址X

Dim 坐标地址Y = 地址相加(Addr_Search(0),24)//坐标Y

TracePrint 坐标地址Y

TracePrint "当前坐标X为:"&Sys.MemoryRead(当前应用包名,坐标地址X,"F32")

TracePrint "当前坐标Y为:"&Sys.MemoryRead(当前应用包名,坐标地址Y,"F32")

For i = 0 To UBOUND(Addr_Search)

        TracePrint"地图地址X为:"&Addr_Search(i)+44
Next

For i = 0 To UBOUND(Addr_Search)

        TracePrint"地图地址Y为:"&Addr_Search(i)+44

Next

 
Do  //循环打印出,循环判断坐标

         Dim坐标X = int(Sys.MemoryRead(当前应用包名,坐标地址X,"F32"))

         Dim坐标Y =int(Sys.MemoryRead(当前应用包名,坐标地址Y,"F32"))

        TracePrint"坐标X:" &坐标X,"坐标Y:"&坐标Y

        ShowMessage"坐标X:" &坐标X&"坐标Y:"&坐标Y, 4000,500,500

        Delay200         

Loop

 

Function 地址相加(地址, 偏移)

   Dim A = Right(地址,Len(地址)-2)

   Dim B =Clng("0x"&A)

   Dim C = B+偏移

   Dim D = Hex(C)

   Dim E = "0x"&D


地址相加 = E

End Function

   总结:其实安卓的简单的内存读写是很容易的,没有想象中的那么复杂。这里PC和安卓本来就有很多相似的地方的。可能我基础相对好一点,学的也相对块一点。但是我这几天学到的东西远远不止上面的内容。最近我比较忙,有空大家留意我其他帖子,有时间我尽量上传上去,你们看了应该会有很大的惊喜的。手头上杀手锏思路还挺多的。  

   后面有空我再给大家更新思维和方法。 !QQ:578052137 3群:670956672

你可能感兴趣的:(安卓内存教程技术交流(一):内存特征码读写原理分析)