題目來(lái)源:Tencent某Android CTF題 題目:安裝包8.apk,要求獲得flag 知識(shí)點(diǎn):Frida/objection、IDA、AES加密 解題過(guò)程:安裝APK,點(diǎn)擊登錄,進(jìn)入如下Activity界面。
利用JADX查看APK,核心代碼如下所示,將輸入作為參數(shù)傳給SecondActivity。
查看SecondActivity的onCreate方法,如下所示,將intent傳的兩個(gè)參數(shù)合并成string,調(diào)用doRawData方法,期望返回值等于"VEIzd/V2UPYNdn/bxH3Xig=="。
繼續(xù)跟蹤,發(fā)現(xiàn)doRawData為Native函數(shù),如下所示,另外還有其他幾個(gè)Native函數(shù)。
我們利用IDA打開(kāi)so分析,如下是doRawData核心代碼,主要是將"thisisatestkey=="作為秘鑰,對(duì)入?yún)⒆址M(jìn)行AES加密。
我們可以利用python編寫(xiě)解密代碼,也可以Android Studio中調(diào)用so解密函數(shù)。如下我們利用python解密,代碼如下所示。最終解密結(jié)果為“aimagetencent”,將其輸入APK界面仍然沒(méi)有得到Flag。
我們利用objection查看下該APK有哪些類(lèi),如下所示,我們發(fā)現(xiàn)FileDataActivity并沒(méi)有分析到,
于是我們直接用objection跳轉(zhuǎn)到FileDataActivity界面如下。
最后我們?cè)倏聪翭ileDataActivity,可以看到將"9YuQ2dk8CSaCe7DTAmaqAA==" 解碼后在界面顯示,所以FileDataActivity界面的顯示就是Flag。
責(zé)任編輯:xj
原文標(biāo)題:逆向基礎(chǔ)題八:獲取Flag
文章出處:【微信公眾號(hào):Linux逆向】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
Flag
+關(guān)注
關(guān)注
0文章
12瀏覽量
8319 -
安裝包
+關(guān)注
關(guān)注
1文章
16瀏覽量
3707
原文標(biāo)題:逆向基礎(chǔ)題八:獲取Flag
文章出處:【微信號(hào):Reverse16,微信公眾號(hào):Q哥學(xué)逆向】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
使用DevEcoStudio 開(kāi)發(fā)、編譯鴻蒙 NEXT_APP 以及使用中文插件
老電視如何安裝瀏覽器?
Cadence SPB OrCAD Allegro22.1安裝包
Cadence SPB OrCAD Allegro23.1安裝包
Cadence SPB OrCAD Allegro24.1安裝包
FX3 SDK安裝包內(nèi)ARM GCC使用版權(quán)是如何約定的?
Keil uVision 5安裝包下載,詳細(xì)安裝教程~
安裝包安裝時(shí)報(bào)驅(qū)動(dòng)無(wú)簽名
如何在OpenVINO?安裝包完成提取后手動(dòng)運(yùn)行install.exe文件?
CS32L010F8U6的KEIL安裝包和SDK
Xilinx_Vivado_SDK的安裝教程

評(píng)論