博客 / 詳情

返回

frida-rpc實現某一短視頻刷邀請

目標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    // class@000900
{
    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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.