如何获取安卓游戏中某一道具的内存基址?

假如通过GameGuardian 等工具,得知了某一游戏将角色"金币"数值存放于0xB6DB9E84这个内存地址。然而当第二次运行这个游戏时。这个地址就变了。有没有什么方式可以准确预测出每一次启动时的"金币"数值所在的内存地址?
(类似于 Windows系统的"基址+偏移"这种定位内存地址的方式)
难道也要先获得模块基址?如何获得? ​

阅读 9.1k
1 个回答

得看具体情况。找地址的方法很多,以下思路仅供参考。

大概有两种情形:

  1. 变量在内存块的相对地址固定。内存块是系统分配的连续的内存空间,从 /proc/<pid>/maps 可以看到。这种可以从内存块大小,或申请内存的地方下手。
  2. 变量的相对地址不固定。这个可以从读取、修改变量的地方下手。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题