題目來源:Tencent某Android CTF題 題目:安裝包8.apk,要求獲得flag 知識點:Frida/objection、IDA、AES加密 解題過程:安裝APK,點擊登錄,進(jìn)入如下Activity界面。
利用JADX查看APK,核心代碼如下所示,將輸入作為參數(shù)傳給SecondActivity。
查看SecondActivity的onCreate方法,如下所示,將intent傳的兩個參數(shù)合并成string,調(diào)用doRawData方法,期望返回值等于"VEIzd/V2UPYNdn/bxH3Xig=="。
繼續(xù)跟蹤,發(fā)現(xiàn)doRawData為Native函數(shù),如下所示,另外還有其他幾個Native函數(shù)。
我們利用IDA打開so分析,如下是doRawData核心代碼,主要是將"thisisatestkey=="作為秘鑰,對入?yún)⒆址M(jìn)行AES加密。
我們可以利用python編寫解密代碼,也可以Android Studio中調(diào)用so解密函數(shù)。如下我們利用python解密,代碼如下所示。最終解密結(jié)果為“aimagetencent”,將其輸入APK界面仍然沒有得到Flag。
我們利用objection查看下該APK有哪些類,如下所示,我們發(fā)現(xiàn)FileDataActivity并沒有分析到,
于是我們直接用objection跳轉(zhuǎn)到FileDataActivity界面如下。
最后我們再看下FileDataActivity,可以看到將"9YuQ2dk8CSaCe7DTAmaqAA==" 解碼后在界面顯示,所以FileDataActivity界面的顯示就是Flag。
責(zé)任編輯:xj
原文標(biāo)題:逆向基礎(chǔ)題八:獲取Flag
文章出處:【微信公眾號:Linux逆向】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
Flag
+關(guān)注
關(guān)注
0文章
12瀏覽量
8139 -
安裝包
+關(guān)注
關(guān)注
1文章
15瀏覽量
3467
原文標(biāo)題:逆向基礎(chǔ)題八:獲取Flag
文章出處:【微信號:Reverse16,微信公眾號:Q哥學(xué)逆向】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論