canyie/pine

Hook 的 Static String 仅在应用内部生效

together08 opened this issue · 5 comments

我使用了 Xposed 类型方法 Hook 了 android.os.build.class.MODEL 这个 static string,如下:

XposedHelpers.setStaticObjectField(android.os.Build.class, "MODEL", "FAKEMODEL");
System.out.println(android.os.Build.MODEL);

后在应用内部执行 System.out.println(android.os.Build.MODEL);,结果得到 FAKEMODEL.

再之后我尝试在另一个 APP 里执行同样的,结果还是得到了原本的 Hook 前的数据.

感觉是我操作问题,望大佬解答.

你的应用和另一个应用跑在不同进程,不同进程的这部分数据是隔离的所以不会生效。修改其他进程的内存需要较高权限,如果有类似需求,建议自行注入到目标进程/ zygote 进程去修改,或者修改 /system/build.prop 这个文件。

方法很多,比如用 magisk 的 zygisk,riru,https://github.com/canyie/NbInjection 或 ptrace 等等,但至少也需要 root 权限(除非利用系统漏洞)

好的,谢谢

请问一下如何注入到 zygote 进程中呢?
希望能大佬解答一下.
如果有捐赠渠道请提供下. Hook 框架做的很好.

好的,谢谢