|

本帖最后由 猿人部落 于 2019-12-16 00:25 编辑
按键(安卓版本)支持安卓内存,实现触发寻路call,这个只适合部分游戏,当然你如果懂C语言也可以直接注入安卓call 的。
有朋友直接修改坐标x,y,z,这种当然没有效果了,现在的游戏都是有校验的。
原理:部分游戏修改目的地坐标,注意了是目的地坐标+touch随意触发事件(可以自己用vad等工具逆向代码得到ID),就可以寻路到任何地方。 下面是代码实现方案!
- Dim 当前应用包名
- 当前应用包名 = sys.GetFront()
- TracePrint 当前应用包名
- '以下是以"比武招亲(武林萌主)游戏为例子,通过搜索内存返回的结果进行偏移读取人物信息面板里的等级、经验等xx"
- Dim addr = "0x02fffffff"
- Dim tb1 = {"lv":73}
- Dim tb2 = {"lv":32,"offset":16}
- Dim tb3 = {"lv":1,"offset":4}
- Dim tb4 = {"lv":1,"offset":4}
- Dim tb5 = {"lv":2139095039,"offset":4}
- Dim tb = {tb1, tb2,tb3,tb4,tb5}
- Dim t = TickCount()
- Dim A = Sys.MemorySearch(当前应用包名, True,addr, tb, "i32",0,1)
- TracePrint "搜索地址为:"&A(0)&",耗时"&(TickCount()-t)
- Dim addr_X = 地址相加(A(0), -20)
- TracePrint addr_X
- Dim addr_Y = 地址相加(A(0), -12)
- TracePrint "当前等级为:"&Sys.MemoryRead(当前应用包名,addr_X, "f32")
- TracePrint "当前等级为:"&Sys.MemoryRead(当前应用包名,addr_Y, "f32")
- Dim 目标X="64",目标Y="63"
- sys.MemoryWrite(当前应用包名,addr_X,目标X, "f32") //第一个目标坐标
- Sys.MemoryWrite 当前应用包名, addr_Y, 目标Y, "f32"
- Sys.MemoryWrite 当前应用包名, "0x87C72270", 目标X, "f32" //第二个目标坐标
- Sys.MemoryWrite 当前应用包名, "0x87C72278", 目标Y, "f32"
- Sys.MemoryWrite 当前应用包名, "0x87C7227C", 目标X, "f32" //第三个目标坐标
- Sys.MemoryWrite 当前应用包名, "0x87C72284", 目标Y, "f32"
- Sys.MemoryWrite 当前应用包名, "0x02AE2CA4", 目标X, "f32" //第四个目标坐标,还没有定位
- Sys.MemoryWrite 当前应用包名, "0x02AE2CAC", 目标Y, "f32"
- TracePrint "写入锁定位置"
- Delay 20
- call 触发走路call()
- Do
- sys.MemoryWrite(当前应用包名,addr_X,目标X, "f32") //第一个目标坐标
- Sys.MemoryWrite 当前应用包名, addr_Y, 目标Y, "f32"
- Sys.MemoryWrite 当前应用包名, "0x87C72270", 目标X, "f32" //第二个目标坐标
- Sys.MemoryWrite 当前应用包名, "0x87C72278", 目标Y, "f32"
- Sys.MemoryWrite 当前应用包名, "0x87C7227C", 目标X, "f32" //第三个目标坐标
- Sys.MemoryWrite 当前应用包名, "0x87C72284", 目标Y, "f32"
- Sys.MemoryWrite 当前应用包名, "0x02AE2CA4", 目标X, "f32" //第四个目标坐标,还没有定位
- Sys.MemoryWrite 当前应用包名, "0x02AE2CAC", 目标Y, "f32"
- TracePrint "写入锁定位置"
- Delay 20
- call 触发走路call()
- TracePrint int(Sys.MemoryRead(当前应用包名,addr_X, "f32"))
- TracePrint int(当前X坐标())
- loop until (当前X坐标()=int(目标X))
- 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
- Function 当前X坐标()
- Dim base =Sys.MemoryRead(当前应用包名,"0xebf10", "i32") //当做基地址
- TracePrint Hex(base)
- Dim 人物血地址= Hex(base+216)
- Dim 人物X坐标地址= Hex(base+216+708)
- Dim 人物X坐标 =Sys.MemoryRead(当前应用包名,人物X坐标地址, "f32") //加上偏移,再进行内存读取
- 当前X坐标=int(人物X坐标)
- End Function
- Function 当前Y坐标()
- Dim base =Sys.MemoryRead(当前应用包名,"0xebf10", "i32") //当做基地址
- Dim 人物Y坐标地址= Hex(base+216+708+8)
- Dim 人物Y坐标 =Sys.MemoryRead(当前应用包名,人物Y坐标地址, "f32") //加上偏移,再进行内存读取
- 当前Y坐标=int(人物Y坐标)
- End Function
- Function 触发走路call()
- Dim 触发事件ID= MemoryReadOffSet("[[054f400]+88]+180",4550) //反编译获取
- End Function
复制代码
|
|