gpt4 book ai didi

android - 如何从Android应用程序读取内存数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:25 25 4
gpt4 key购买 nike

我想从应用程序中获取一些数字数据,但它们不会像 db 那样存储为文件。我知道有一些内存黑客应用程序可以改变游戏值(value),但我不知道它们是如何工作的。我正在寻找类似的功能,但我不需要更改任何内容。

我正在尝试编写的应用程序只是从特定应用程序读取一些数据,并根据这些数据进行一些后台计算。如果这不可能,我将需要通过读取屏幕来获取信息(例如获取像素颜色),但这对于获取大量数据来说似乎是一项非常繁琐的任务。

有什么办法可以实现吗?

谢谢。

编辑:我假设我需要 root 权限?

最佳答案

是的,您需要 root 权限。此外,您的用户必须拥有完全根植的设备,例如SuperSU 或其他现代 Su 应用程序,可以解除大多数 SELinux 限制。也可能与 KNOX 和其他类似系统有冲突,但我对这些不是很了解。

您需要将您的进程作为调试器附加到目标应用程序,并通过扫描它的内存来定位必要的数据。这可以通过多种方式完成,最好的引用实现可以在 scanmem 中找到。 .

执行实际操作(需要 root 权限)(读/写目标进程内存)的代码将驻留在 native 可执行文件中,通过 su 运行。您必须编写一些代码来与该可执行文件通信(可能通过它的标准输入/标准输出或类似的东西)。

您还必须自己编写额外的代码来解析目标应用程序的内存布局。

或者,您可能更愿意在目标应用程序的内存中注入(inject)一个小模块和/或让应用程序本身加载您制作的 Dex 文件(如果您的目标数据存储在 Java 内存中,则尤其方便)。这种方法的好处是可以最大程度地减少与虚拟机内存布局的交互,但您仍然必须启动初始 Dex 文件的加载。加载 Dex 文件后,您可以使用老式的反射 API 在 Java 代码中完成剩下的工作。如果您选择这条路线,可以在 compel library 中找到用于在 Linux 进程的内存中注入(inject)可执行 fragment 的代码(非常支持!) , 作为 CRIU 项目的一部分开发 [1] .

关于android - 如何从Android应用程序读取内存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37825143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com