最近在看雪Android區(qū)看到九月份的一篇優(yōu)秀貼, 文章從過反調(diào)試和IDA動(dòng)靜態(tài)調(diào)試角度解題,甚至還得解析得到RC4密鑰,講得非常細(xì)致,雖然我也是新手,但是這么去逆向,讓人覺得太難懂了。
明明有強(qiáng)大的frida工具,可以無需過反調(diào)試,無需IDA去動(dòng)靜態(tài)調(diào)試,無需獲取RC4密鑰,直接用主動(dòng)調(diào)用獲取flag,何必走繁瑣的路呢?
首先直接JADX打開APK,沒有加殼,直接可以看到核心代碼如下,用戶輸入直接通過JNI函數(shù)greywolf對輸入字符串做檢測。
利用IDA打開libwolf.so,沒有找到greywolf函數(shù),所以該函數(shù)肯定是通過registerNatives注冊的,于是直接用frida拿到greywolf偏移,為0X14075。
然后IDA快捷鍵按G,輸入0X14075,直接跳轉(zhuǎn)到greywolf函數(shù)(函數(shù)名稱換成了bc)處,再F5查看偽代碼,如下。該函數(shù)只有l(wèi)ine15和line17兩處return,先分析第二處return。
跟蹤wolf_de函數(shù),看到明顯的RC4解密算法,且密鑰就是unk_4E13A,所以直接調(diào)用wolf_de,傳入待解密字符串,其返回值就是解密結(jié)果,我們直接利用frida去主動(dòng)調(diào)用wolf_de,去解密bc函數(shù)中l(wèi)ine16行“5B694AADB2DC559E44B84637A2D61F”得到“Password Error~”,效果如下。
所以要想驗(yàn)證成功,必然走到line15行的j_jk函數(shù),繼續(xù)跟蹤此函數(shù),同樣手法在jk函數(shù)中l(wèi)ine15可以解析得到正確顯示,所以跟蹤dc函數(shù)。
跟蹤上圖dc函數(shù),一切皆從return往上跟蹤,最后在ds函數(shù)中看到如下代碼,該代碼將輸入字符與line24解密字符串比較,相等則為真。
所以直接主動(dòng)調(diào)用,直接看到flag為“hello5.1”,上機(jī)驗(yàn)證正確。
責(zé)任編輯:YYX
-
密鑰
+關(guān)注
關(guān)注
1文章
141瀏覽量
19853 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62979 -
Flag
+關(guān)注
關(guān)注
0文章
12瀏覽量
8156
原文標(biāo)題:逆向基礎(chǔ)題十:獲取flag
文章出處:【微信號:Reverse16,微信公眾號:Q哥學(xué)逆向】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
電動(dòng)汽車高壓主動(dòng)放電幾種方式
![電動(dòng)汽車高壓<b class='flag-5'>主動(dòng)</b>放電幾種方式](https://file1.elecfans.com/web3/M00/04/91/wKgZO2d2C_GASVCDAAAXBz_ukV4450.png)
主動(dòng)芯片組參考設(shè)計(jì)指南
![<b class='flag-5'>主動(dòng)</b>芯片組參考設(shè)計(jì)指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
主動(dòng)均衡技術(shù)是什么 應(yīng)用場景有哪些
使用OPA567做了一個(gè)可調(diào)電源,是不是OCP flag active之后必須要講EN腳disable之后flag才會(huì)復(fù)位?
OpenAI api key獲取并可調(diào)用GPT-4.0、GPT-4o、GPT-4omini
![OpenAI api key<b class='flag-5'>獲取</b>并可<b class='flag-5'>調(diào)用</b>GPT-4.0、GPT-4o、GPT-4omini](https://file1.elecfans.com/web2/M00/DF/17/wKgaomYuCbSAVjVdAAFqVfXnuJY859.png)
請問如何在WPS模式下獲取AP的SSID和PWD?
主動(dòng)紅外和被動(dòng)紅外詳解
![<b class='flag-5'>主動(dòng)</b>紅外和被動(dòng)紅外詳解](https://file1.elecfans.com/web2/M00/F4/96/wKgaomZ9L2iAGOdvAABafG1LCng830.png)
請問ESP32 BLE透傳如何主動(dòng)發(fā)送數(shù)據(jù)?
請問esp32 ota升級如何獲取更新進(jìn)度?
CC2340R5從機(jī)主動(dòng)notify就會(huì)導(dǎo)致BLE卡住,為什么?
stm32f030的AD轉(zhuǎn)換,如何調(diào)用一次getadcvalue() 就采集一次數(shù)據(jù)?
OpenAI API Key獲取與充值教程:助開發(fā)者解鎖GPT-4.0 API
![OpenAI API Key<b class='flag-5'>獲取</b>與充值教程:助開發(fā)者解鎖GPT-4.0 API](https://file1.elecfans.com/web2/M00/DF/17/wKgaomYuCbSAVjVdAAFqVfXnuJY859.png)
HAL_GetTick()獲取不到計(jì)時(shí),IIC等待超時(shí)函數(shù)無法跳出的原因?怎么解決?
ADS調(diào)用spectre網(wǎng)表仿真異常—薛定諤的NetlistInclude
![ADS<b class='flag-5'>調(diào)用</b>spectre網(wǎng)表仿真異常—薛定諤的NetlistInclude](https://file1.elecfans.com/web2/M00/C2/ED/wKgZomXpH16AMieeAAAuBVYy6Ww357.png)
評論