使用多种抓包软件pdd发现PC端的各个请求都找不到,尝试了好久。后面转抓安卓端的
也是一样的。百度了下资料。发现是一个TCP长连接,长连接数据是在不断和服务端交互的
分析apk 版本V7.5
使用androidkiller发现相关的长连接位于 com.xunmeng.basiccomponent.titan.api.TitanApiRequest类的 canUseLongLink 方法,按照常理只需要把返回值改成false即可
具体的类名可能不对。因为版本原因。具体搜:canUseLongLink即可
hook实现示例:
- //查找要HOOK的函数
- Class<?> p2 = lpparam.classLoader.loadClass("com.xunmeng.basiccomponent.titan.api.TitanApiRequest");
- Class<?> p1 = lpparam.classLoader.loadClass("com.xunmeng.basiccomponent.titan.api.helper.ApiNetChannelSelector");
-
-
- XposedHelpers.findAndHookMethod(
- p1,//被HOOK的函数所在类(包名+类名)
- "canUseLongLink",//被HOOK的函数的名称
- p2,//HOOK函数的第一个参数
- AtomicInteger.class,//HOOK函数的第二个参数。类推
- new XC_MethodHook() {
- @Override
- //HOOK之前执行的代码
- XposedBridge.log("method before canUseLongLink:");
- XposedBridge.log("arg:" + arg);
- }
- XposedBridge.log("method before canUseLongLink:");
- }
-
- @Override
- //HOOK函数之后执行的代码
- param.setResult(false);
- XposedBridge.log("method canUseLongLink 修改返回值false");
- }
- });
- }
打包hook使其生效
再次打开抓包软件查看,发现各个请求已经未使用长连接了,使用了http协议。可以愉快的玩撒了