跳到主要内容

Sys.MemoryRead 读取内存(不支持IOS)

🎯功能

读取应用指定内存地址所对应的值。

📜语法

结果 = Sys.MemoryRead(应用名称, 内存地址, 数据类型)

📥参数

参数数据类型解释
应用名称字符串待搜索的应用程序包名。
内存地址字符串0x开头的的字符串地址,如:"0x40947bf8"。
数据类型字符串搜索的数据类型,参数必须为 ('I8' 'I16' 'I32' 'I64' 'U8' 'U16' 'U32' 'U64' 'F32' 'F64')其中之一。

📤返回

字符串 ,字符串型,读取到的数值,读取不到返回false。

💡示例

Dim 当前应用包名
当前应用包名 = sys.GetFront()
TracePrint 当前应用包名
'以下是以"比武招亲(武林萌主)游戏为例子,通过搜索内存返回的结果进行偏移读取人物信息面板里的等级、经验等数据"
Dim addr = "0x0"
'下面定义的表数据可通过烧饼修改器等内存搜索工具来查找对比获得
Dim tb1 = {"lv":5389}
Dim tb2 = {"lv":5390,"offset":24}
Dim tb = {tb1, tb2}
Dim t = TickCount()
Dim A = Sys.MemorySearch(当前应用包名, True,addr, tb, "i32",0,1)
TracePrint "搜索地址为:"&A(0)&",耗时"&(TickCount()-t)
Dim 等级地址 = 地址相加(A(0), 116)
TracePrint "当前等级为:"&Sys.MemoryRead(当前应用包名,等级地址, "i32")
Dim 当前经验值地址 = 地址相加(A(0), 128)
TracePrint "当前经验值为:"&Sys.MemoryRead(当前应用包名,当前经验值地址, "i32")
Dim 战斗力地址 = 地址相加(A(0), 236)
TracePrint "当前战斗力为:"&Sys.MemoryRead(当前应用包名,战斗力地址, "i32")
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

📘备注

数据类型的各个含义

名称含义
i8有符号8位
i16有符号16位
i32有符号32位
i64有符号64位
u8无符号8位
u16无符号16位
u32无符号32位
u64无符号64位
f3232位浮点数
f6464位浮点数