前段时候微信封禁了一大批使用 xposed 的微信账号,对一些运营微信的企业造成的巨大损失。下面我们聊聊 xposed 的检测机制。
市面上 xposed 的检测手段一般包含如下几种方法
- XposedInstaller 检测;
- Java 层检测是否安装 xposed 组件;
- 堆栈信息检测 xposed 相关信息;
- 检测关键方法是否是 native 方法;(只能检测出是否 hook, 但是不能检测 hook 手段)
- 直接调用 /system/framework/XpsedBridge.jar 内部的方法来验证;
- 查看 /system/bin/ 、/system/lib/、/system/lib64/、内部是否存在 xposed 相关文件;
- 查看 app 内部加载库列表是否存在不正常的 so 库;(验证文件 /proc/self/maps 内容);
- 检测关键方法的特征码;
- 其他未知的方法
针对以上的检测方法,可以针对性的隐藏掉 xposed 的关键特征:
- 替换 XposedInstall 包名;
- 隐藏 XposedBridge.jar(替换包名和自身名字);
- 隐藏包含 xposed 名字特征的文件;
- 隐藏掉 lib_xposed_art.so 、lib_xposed_dalvik.so 等 xposed 特征;
- 隐藏掉 xposed.prop 文件
有兴趣可以加 wx 聊 : hunter-688