- 安卓Frida逆向與協(xié)議分析
- 陳佳林
- 1126字
- 2023-09-15 17:59:17
1.2 逆向環(huán)境準備
在配置好基礎(chǔ)的系統(tǒng)環(huán)境之后,為了進行后面的逆向開發(fā)工作,還需要安裝一些基礎(chǔ)的開發(fā)工具。
首先,作為Android逆向環(huán)境開發(fā)人員,Android Studio是一款必不可少的開發(fā)工具。在Eclipse退出安卓開發(fā)歷史舞臺后,作為Google官方的Android應用開發(fā)IDE,筆者首先推薦這款軟件。在從官網(wǎng)下載和解壓對應Linux版本的Android Studio后,切換到android-studio/bin目錄下,通過運行當前目錄下的studio.sh即可運行Android Studio。
首次打開Android Studio會進行Android SDK工具的下載,這些工具是后續(xù)開發(fā)所必需的,因此默認一直單擊Next按鈕即可。在這個過程中,可以關(guān)注一下SDK的保存目錄,默認SDK目錄為/root/Android/Sdk/,這個目錄下存在一些在后續(xù)逆向過程中需要的工具,比如ADB這個用于與移動設(shè)備進行通信的工具。這里將ADB工具所在目錄/root/Android/Sdk/platform-tools/加入環(huán)境變量,便于在任意目錄下執(zhí)行adb命令。

在將ADB工具加入環(huán)境變量后,為了使得設(shè)置生效,需要重新打開Terminal,再次執(zhí)行adb命令,結(jié)果如下:

回到正題,在下載插件完畢后,Android Studio的界面如圖1-4所示。

圖1-4 Android Studio的界面
請注意,在第一次創(chuàng)建Project時,Android Studio需要進行一段可能費時很長的同步環(huán)節(jié),用于下載Gradle構(gòu)建工具以及其他相關(guān)依賴,這個時候只需要去喝杯茶,靜靜等待即可。
在Android Studio配置好后,筆者還會推薦一些在日常工作中使用的小工具,這些工具也許不會直接對工作有幫助,但是一旦掌握了這些工具,用戶的日常工作會變得更加得心應手。
首先,推薦htop這款加強版top工具。與top工具相同,htop可以用于動態(tài)查看當前活躍的、占用高的進程,但是比top工具的顯示效果更加人性化,具體效果如圖1-5所示。這個工具在編譯安卓源碼時非常好用,當我們執(zhí)行make命令系統(tǒng)開始編譯Android源碼之后,通過htop工具可以發(fā)現(xiàn)內(nèi)存Mem以肉眼可見的速度跑到底之后,開始侵占Swp的進度條。另外,htop中的Uptime后顯示的是開機時間;Load average是指平均負載,比如虛擬機被分配了四核CPU,那么平均負載跑到4的時候說明系統(tǒng)已經(jīng)滿載。圖1-5中左側(cè)1、2、3、4的進度條表示相應CPU當前的負載狀態(tài),其余htop操作指南讀者可以自行去網(wǎng)上搜索。

圖1-5 htop界面
另外,筆者還要推薦一款實時查看系統(tǒng)網(wǎng)絡(luò)負載的工具jnettop,在安裝和使用軟件(比如Frida)的過程中,可以利用jnettop工具實時查看相應的下載速度和對應的IP,甚至讀者在AOSP編譯時打開jnettop,會觀察到編譯過程中出現(xiàn)連接國外的服務(wù)器下載依賴包等行為。除此之外,值得一提的是,在抓包時打開這個工具往往會有奇效,比如能夠?qū)崟r查看對方的IP等。jnettop界面顯示如圖1-6所示,可以看到主機連接的遠程IP、端口、速率以及協(xié)議等內(nèi)容。

圖1-6 jnettop界面
在過去筆者經(jīng)常會被問到如圖1-7所示因為窗口大小限制導致jnettop工具無法運行的問題(Too small terminal (detected size: 79×34)),真讓人哭笑不得,筆者在這里統(tǒng)一回答這個問題。實際上jnettop工具本身在運行時對終端大小是有所要求的,否則jnettop工具就無法打開,minimum required size: 80×20這個提示表明終端長和寬至少為80×20。

圖1-7 jnettop因終端窗口過小導致無法打開
- 大前端三劍客:Vue+React+Flutter
- 軟件需求與可視化模型(微軟技術(shù)叢書)
- 掌握分布式跟蹤:微服務(wù)和復雜系統(tǒng)性能分析
- Scala機器學習
- 軟件質(zhì)量管理指南
- Unity 2017經(jīng)典游戲開發(fā)教程:算法分析與實現(xiàn)
- 移動終端應用軟件開發(fā)實戰(zhàn)
- 現(xiàn)代軟件工程
- 測試開發(fā)實戰(zhàn)教程
- 軟件測試項目實戰(zhàn)
- 芯片改變世界
- 構(gòu)建移動網(wǎng)站與APP:ionic移動開發(fā)入門與實戰(zhàn) (跨平臺移動開發(fā)叢書)
- 工業(yè)軟件云戰(zhàn)略
- DDD工程實戰(zhàn):從零構(gòu)建企業(yè)級DDD應用
- 中臺產(chǎn)品經(jīng)理寶典:從業(yè)務(wù)建模到中臺設(shè)計全攻略