python之逆向app破解md5引數
阿新 • • 發佈:2021-01-11
一、抓包分析
首先下載app,登入入口
二、脫殼
是否加殼,若有殼,先稅殼。
脫完之後發現三個dex檔案,然後合併dex檔案
三、用jadx-gui開啟
分析加密引數
搜尋關鍵字
四、hook方法
上frida,hook md5
frida指令碼如下
hook.js
Java.perform(function () { console.log('HOOK Start!!!'); var Des3Encrypt = Java.use("com.yunmall.ymsdk.utility.AuthUtils"); //com.whxxcy.mango.core.service.network.c.b com.whxxcy.mango.core.util.a console.log(Des3Encrypt); // 加密 Des3Encrypt.md5.overload('java.lang.String').implementation = function (args1) { console.log("Encrypt args1:",JSON.stringify(args1)); //console.log("Encrypt args2:",args2); //console.log("Encrypt args3:",args3); //console.log("Encrypt args4:",args4); var result = this.md5(args1); console.log("Des3Encrypt.encode result==:",result); return result; }; });
python 指令碼
import logging import frida import sys logging.basicConfig(level=logging.DEBUG) def on_message(message, data): print(message) with open('lie_qu.js', 'r', encoding='utf-8') as f: sta = ''.join(f.readlines()) # print(sta) rdev = frida.get_remote_device() processes = rdev.enumerate_processes() # 安卓手機中的所有程序 print(processes) # android.content.Intent android.content.Context android.view.ViewGroup java.lang.String, java.util.List [Ljava.lang.String;(String[]), javax.net.ssl.SSLSession SSLSession session = rdev.attach("com.yunmall.ymctoc") print(session) script = session.create_script(sta) script.on("message", on_message) script.load() sys.stdin.read()
結果報錯
這種方法在此app是行不通的
六、用命令列形式
frida -U --no-pause -f packagename -l hook.js
frida -U --no-pause -f com.yunmall.ymctoc