某多商家工作台APP抓包

使用多种抓包软件pdd发现PC端的各个请求都找不到,尝试了好久。后面转抓安卓端的
也是一样的。百度了下资料。发现是一个TCP长连接,长连接数据是在不断和服务端交互的
分析apk 版本V7.5
使用androidkiller发现相关的长连接位于 com.xunmeng.basiccomponent.titan.api.TitanApiRequest类的 canUseLongLink 方法,按照常理只需要把返回值改成false即可

具体的类名可能不对。因为版本原因。具体搜:canUseLongLink即可

hook实现示例:

  1. //查找要HOOK的函数
  2. Class<?> p2 = lpparam.classLoader.loadClass("com.xunmeng.basiccomponent.titan.api.TitanApiRequest");
  3. Class<?> p1 = lpparam.classLoader.loadClass("com.xunmeng.basiccomponent.titan.api.helper.ApiNetChannelSelector");
  4.  
  5.  
  6. XposedHelpers.findAndHookMethod(
  7. p1,//被HOOK的函数所在类(包名+类名)
  8. "canUseLongLink",//被HOOK的函数的名称
  9. p2,//HOOK函数的第一个参数
  10. AtomicInteger.class,//HOOK函数的第二个参数。类推
  11. new XC_MethodHook() {
  12. @Override
  13. protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
  14. //HOOK之前执行的代码
  15. XposedBridge.log("method before canUseLongLink:");
  16. for (Object arg : param.args) {
  17. XposedBridge.log("arg:" + arg);
  18. }
  19. XposedBridge.log("method before canUseLongLink:");
  20. }
  21.  
  22. @Override
  23. protected void afterHookedMethod(MethodHookParam param) throws Throwable {
  24. //HOOK函数之后执行的代码
  25. param.setResult(false);
  26. XposedBridge.log("method canUseLongLink 修改返回值false");
  27. }
  28. });
  29. }

打包hook使其生效

再次打开抓包软件查看,发现各个请求已经未使用长连接了,使用了http协议。可以愉快的玩撒了

发表评论

邮箱地址不会被公开。 必填项已用*标注