前段時(shí)候微信封禁了一大批使用 xposed 的微信賬號(hào),對(duì)一些運(yùn)營(yíng)微信的企業(yè)造成的巨大損失。下面我們聊聊 xposed 的檢測(cè)機(jī)制。
市面上 xposed 的檢測(cè)手段一般包含如下幾種方法
- XposedInstaller 檢測(cè);
- Java 層檢測(cè)是否安裝 xposed 組件;
- 堆棧信息檢測(cè) xposed 相關(guān)信息;
- 檢測(cè)關(guān)鍵方法是否是 native 方法;(只能檢測(cè)出是否 hook, 但是不能檢測(cè) hook 手段)
- 直接調(diào)用 /system/framework/XpsedBridge.jar 內(nèi)部的方法來(lái)驗(yàn)證;
- 查看 /system/bin/ 、/system/lib/、/system/lib64/、內(nèi)部是否存在 xposed 相關(guān)文件;
- 查看 app 內(nèi)部加載庫(kù)列表是否存在不正常的 so 庫(kù);(驗(yàn)證文件 /proc/self/maps 內(nèi)容);
- 檢測(cè)關(guān)鍵方法的特征碼;
- 其他未知的方法
針對(duì)以上的檢測(cè)方法,可以針對(duì)性的隱藏掉 xposed 的關(guān)鍵特征:
- 替換 XposedInstall 包名;
- 隱藏 XposedBridge.jar(替換包名和自身名字);
- 隱藏包含 xposed 名字特征的文件;
- 隱藏掉 lib_xposed_art.so 、lib_xposed_dalvik.so 等 xposed 特征;
- 隱藏掉 xposed.prop 文件
有興趣可以加 wx 聊 : hunter-688