在看 Zygisk 源码和调试的过程中发现了一种可以检测 Zygisk 的方法。本文 Magisk v24.3 为例.
在我查看 app 的 maps 的时候,如果开启了 zygisk. 那么会在 maps 文件里出现 2 个 app_process, 一个是 magisk, 另一个是真正的 app_process
如图
红框的部分其实就是 magisk.
可以参考:
Zygisk 源码分析
所以直接检测这里,看看是不是有 2 个 app_process 就可以判断是否有 Zygisk.
但有个问题,我在测试的时候发现,并不是所有时间都能检测到 2 个 app_process, 可能是 zygisk 做了处理.
但是在 constructor 里检测是没有问题的.
1 | int app_process64_num=0; //如果app_process64_num为2,说明有zygisk |
下载地址
https://github.com/PShocker/PShocker.github.io/releases/download/zygiskdetect/zygiskdetect.apk