指标APP:某一短视频

之前发过一篇文章,app降级算法之后还没来得及更新,文章就被举报404了,悲痛,明天更新写一下新版,这里就不贴源码了,文章最初放github,须要自取,我看老六还怎么举报。

工具筹备

  • HTTP Debugger Professional v9.11
  • 雷电模拟器9绿色去广告版
  • 算法助手(通用hook插件)

用到的工具配置好的雷电模拟器零碎备份在release页面下载

PS. 间接应用备份的零碎,环境都配置好了,关上frida转发端口就能用。

自行配置步骤:模拟器设置system可写并开启root,用MagiskDelta刷面具,删除自带的su文件,刷入LSPosed,装置算法助手插件,用FridaHooker装置Frida。算法助手中关上总开关和算法剖析的3个开关,开启Frida,通过adb转发端口,关上HTTP Debugger Pro抓包(需装置证书到零碎分区)

剖析过程

工具都配置好后,关上指标APP,直到胜利绑定邀请码。
(我测试过程中装完证书间接就能够失常抓包,说抓不到的能够试试在算法助手里关上JustTrustMe)

返回算法助手查看,发现没有aes加密,居然和以前加密形式不同了

不过回算法助手能够看到sign还是有的,仍然是老办法,sha256+md5

apk拖到GDA中,定位到算法助手中sign的调用堆栈地位,很容易发现加密点

按x查看穿插援用,最终定位到了sojm.so

package com.qq.lib.EncryptUtil;import java.lang.System;import java.lang.String;import java.lang.Object;public class EncryptUtil    // [email protected]{    static {       System.loadLibrary("sojm");    }    public void EncryptUtil(){       super();    }    public static native String decrypt(String p0,String p1);    public static native String decryptHls(String p0,String p1);    public static native byte[] decryptImg(byte[] p0,int p1,String p2);    public static native byte[] decryptImg2(byte[] p0,int p1,String p2);    public static native String encrypt(String p0,String p1);}

因为不会剖析so,尝试一番后无果,且模拟器frida无奈hook到第三方APP的so,手上又没有真机,遂放弃

改用frida-rpc,供python程序间接调用加密办法,除了应用过程比拟麻烦,貌似也没什么大问题

学习了一番frida,间接开始改代码,还是之前的源码,只是改一改加密解密办法

最终hook到com.qq.lib.EncryptUtil这里就行,不必到so外面,反正只是内部调用而已

Python源码

https://github.com/erma0/test/blob/main/91/frida91.py