通过搜索发现,目前有部分软件
即可实现修改位置。如“神行者”等。
此类软件实现的方法是什么?以及可以如何检测出来?
显然第二点并不是比较好的方案。对于 Hook 类的修改位置,目前已经有比较成熟的检测方法,但是对于这类无需 Hook 的模拟位置,由于我不清楚其原理,是否有大佬能给我科普一下,其实现方式?
1
wjdimba 2020-02-18 11:02:16 +08:00
自己集成 hook 代码不就好了,不一定要装 xposed 框架
|
2
gam2046 OP @wjdimba 自己集成应该如何实现呢。首先 Zygote 启动是先于目标程序的,因此这段代码无法注入 Zygote 以达到注入所有程序。同时也没有重启 Zygote,重启 Zygote 会导致软重启,实际使用这类软件的时候,并未出现这种情况。
那么看起来,启动目标应用的入口,即使 Root,也无法魔改。所以,我没有猜测到实现方式,也没有搜到类似的开源方案。 |
3
wjdimba 2020-02-18 15:29:00 +08:00
android root 之后拦截 binder 调用,就可以修改 imei imsi 通讯录 地理位置等信息的返回
|
4
gam2046 OP @wjdimba 有相关资料科普嘛?
目标应用是由 Zygote fork 出来后 setuid/setgid,然后交由目标程序运行。这个中间是哪里拦截,我没想通。 如果是 ServiceManager 做拦截的话,这部分是 framework 的代码,因此在 Zygote 已经被加载,无法让其返回自己的 Binder 对象。 如果是在目标进程获取到 Binder 对象时,进行替换,那么问题又回去了。目标进程是由 Zygote fork 出来的,中间似乎没有能够插入的机会?(或者是我不知道的途径? |
5
weishu 2020-02-19 14:14:04 +08:00 1
ptrace zygote
|