安卓逆向騰訊動漫app返回數(shù)據(jù)加密分析案例分享
前言
騰訊動漫app v8.1.6 工具:jadx、frida、pixel3 安卓10
提示:以下是本篇文章正文內(nèi)容,案例可供參考
一、問題
1.1抓包返回加密數(shù)據(jù)
1.2查殼
未發(fā)現(xiàn)加殼 直接打開jadx分析
二、分析
1.1 jadx-gui
打開jadx-gui把apk文件拖進去等待片刻, 首先先找到包名package=“com.qq.ac.android” 為hook做準(zhǔn)備。
1.2 全局搜索加密函數(shù)
在分析加密方法的時候憑借經(jīng)驗找出最可能是的地方,根據(jù)這個案例大概能看出來是AES加密的數(shù)據(jù),搜索關(guān)鍵詞encrypt 。
結(jié)果如上, 看搜索出來的包名類com.qq.ac.android.library.util.CryptUtils比較像,點進去看下。
1.3 疑似方法分析
decodeHttpRequest()
encodeHttpRespone()
先不管了上frida hook看看
三、Frida
1.1 反編譯代碼分析
代碼如下:
public String decodeHttpRequest(byte[] bArr, int i) { return ees3DecodeECB2Str(encryptKey(), bArr); } public String encodeHttpRespone(byte[] bArr, int i) { return ees3EncodeECB2Str(encryptKey(), bArr); }
ees3DecodeECB2Str()方法傳入了兩個參數(shù), 參數(shù)1:encryptKey(),bArr.
1.2 hook看下結(jié)果:
encryptKey() ⇒ 就是秘鑰啦 bytes就是對應(yīng)加密的響應(yīng)數(shù)據(jù)。
1.3算法還原
public static byte[] des3EncodeECB(byte[] bArr, byte[] bArr2) { SecretKey generateSecret = SecretKeyFactory.getInstance("desede").generateSecret(new DESedeKeySpec(bArr)); Cipher instance = Cipher.getInstance("desede/ECB/PKCS5Padding"); instance.init(1, generateSecret); return instance.doFinal(bArr2); } public static String ees3EncodeECB2Str(byte[] bArr, byte[] bArr2) { byte[] bArr3 = new byte[0]; try { return Base64.encodeToString(des3EncodeECB(bArr, bArr2), 2); } catch (Exception unused) { return ""; } } public static byte[] ees3DecodeECB(byte[] bArr, byte[] bArr2) { SecretKey generateSecret = SecretKeyFactory.getInstance("desede").generateSecret(new DESedeKeySpec(bArr)); Cipher instance = Cipher.getInstance("desede/ECB/PKCS5Padding"); instance.init(2, generateSecret); return instance.doFinal(bArr2); }
3DES(或稱為Triple DES)是三重數(shù)據(jù)加密算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。它相當(dāng)于是對每個數(shù)據(jù)塊應(yīng)用三次DES加密算法。
能看出來是3DES對稱加密 沒有魔改的地方。
1.4 Python還原
總結(jié)
內(nèi)容敏感關(guān)鍵部分就不發(fā)了,小伙伴跟著做一遍問題不大。
以上就是騰訊動漫app返回數(shù)據(jù)加密分析的詳細內(nèi)容,更多關(guān)于返回數(shù)據(jù)加密分析騰訊動漫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android開發(fā)實現(xiàn)文件關(guān)聯(lián)方法介紹
這篇文章主要介紹了Android開發(fā)實現(xiàn)文件關(guān)聯(lián)方法介紹,具有一定參考價值,需要的朋友樂意了解下。2017-10-10android 把float轉(zhuǎn)換成Int的實例講解
今天小編就為大家分享一篇android 把float轉(zhuǎn)換成Int的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Android studio中生成引用.aar和.jar的方法詳解
這篇文章主要是講解.aar的生成與引用,文中的內(nèi)容屬于完全基礎(chǔ)性概念,對剛學(xué)習(xí)使用Android studio的朋友們很有幫助,有需要的可以參考學(xué)習(xí),下面來一起看看吧。2016-09-09