一點(diǎn)資訊signature分析

app版本 6.2.3.0

java層

抓包,請(qǐng)求參數(shù)signature是本次分析的目的

圖1

jadx中查找signature

圖二

繼續(xù)追蹤,此處可知道是對(duì)請(qǐng)求參數(shù)中的appid,cv,platfrom,reqid,version進(jìn)行加密

圖3

繼續(xù)跟進(jìn),最終跟進(jìn)都signInternal方法,而此方法通過native修飾,可知加密實(shí)在util.so中進(jìn)行的

圖4
圖5

so層分析

在ida中通過搜索關(guān)鍵詞signInternal。

由下往上分析,可知道returnStr是最終答案,而returnStr是在encryptJavaString中生成的。

這里說下getApkSignature,這個(gè)方法是獲取apk的簽名,這里不用管。

encryptJavaString有6個(gè)參數(shù),v4是env不管,cstr是要加密的字符串,hashCode是apk簽名,固定字符串和0;

圖6


追進(jìn)encryptJavaString查看,一眼可看出加密過程是在encypt中進(jìn)行的。returnStra是結(jié)果,那encypt次加密后結(jié)果一定為0;

圖7

繼續(xù)追進(jìn)去,看到這里思路應(yīng)該清晰了,有一個(gè)rsa_encrypt_key_ex的方法,這里首先懷疑是rsa對(duì)稱加密。rsa加密是有一個(gè)密鑰的,這里要分析密鑰是什么。在圖6中有一個(gè)固定的字符串,這里用這個(gè)當(dāng)密鑰試了試,發(fā)現(xiàn)不對(duì)。


而后看到有個(gè)decryptKey的方法,這里

圖8

使用frida hook decryptKey方法,在out2的返回結(jié)果就是就是密鑰,hook的結(jié)果我就不展示了。密鑰我放出來了。MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDP2SYzFccMwZxC05Uxwei6ijFcOoJOHPHBK2oRX6ZVDSZMxb7ghH1HU63abxzcW/+OC845OlxC5XZA9AZtfgEHdYNpEGyaCHE1zu4LsWiovTLpYhV1Ya9Ks/6ynUecn1P8D3OAKaCuD3DLlawLCRmWlc2EpnwYuJIrEf/OnB7A2QIDAQAB


圖9

這里展示下最終的請(qǐng)求的結(jié)果。

對(duì)了,這個(gè)request_sign_bj請(qǐng)求參數(shù)有加密的,是AES加密,這個(gè)加密的key在java層,我這里就不展示了。


圖10
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容