随着安卓平台对安全性的逐步重视,测试人员的抓包操作也越来越繁琐(特别微信平台)。之前讲过一篇微信小程序抓包方案是关于免 Root 的一些抓包方案,今天则讲一讲 Root 下的终极解决方案——Xposed,学会了这个就真的可以为所欲为了。
工欲善其事,必先利其器。首先需要采购一台 Root 友好的设备(二手的就好),推荐 Nexus 系列。
然后去论坛找教程将设备 Root。
这个操作是一次性的,后面就可以一劳永逸。
Xposed 是一个开源的运行时框架服务,可以拦截系统调用(HOOK),动态修改内存数据,可以在不改变 APK 的情况下改变应用的行为。
真正发挥威力的是 Xposed 上面的模块,像我们熟知的抢红包、修改界面、机器人都是在这上面诞生的。目前有一千多个模块,可以真正让你为所欲为。
这一步我们的安装方案是 Magisk + Xposed,具体细节不再赘述。
JustTrustMe
前面两步我们搞定了设备和框架,这一步需要安装一个模块 JustTrustMe,这个模块的作用是把客户端对于 SSL 层的校验给干掉(disables SSL certificate checking),后续抓包就可以畅通无阻了。
这里给出一段钩子代码的实现示例:
/* external/apache-http/src/org/apache/http/conn/ssl/SSLSocketFactory.java */
/* public boolean isSecure(Socket) */
Log.d(TAG, "Hooking SSLSocketFactory(Socket) for: " + currentPackageName);
findAndHookMethod("org.apache.http.conn.ssl.SSLSocketFactory", lpparam.classLoader, "isSecure", Socket.class, new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
return true;
}
});
到这里,相信天下没有抓不到的包了。
值得注意的是,这套方案普遍被用于灰产行业,是可以被检测出来的(例如微信、支付宝),如果使用不当是有封号风险的。
Copyright © 2015-2022 BY-NC-ND 4.0