該篇文章主要介紹在Android逆向開始之前的手機環境配置。其中包括對手機進行刷機(根據所需的Android手機型號、Android系統版本進行刷機。這裡我以nexus 5 android 6.0.1為例,其他Google系手機型號及刷其他Android版本系統都是類似的);第二個則是安裝Android逆向分析hook框架(Xposed、frida)及一些常用的基礎插件等。
一、刷機前準備
電腦下載platform-tools(刷機用到的工具),可以在下面連結下載platform-tools(包括windows、linux、mac),如下所示
https://developer.android.com/studio/releases/platform-tools.html
如果上面下載速度慢的,也可以在公眾號回復"nexus_platform-tools"通過百度盤下載,下載完並將目錄設置為PATH環境變量即可
當然如果你還需要涉及到Android開發的話,也可以直接下載Android studio進行安裝,它會自帶下載Android sdk裡面就包含platform-tools,下載連結如下
https://developer.android.com/studio/
下載Android 6.0.1刷機包,可以在下面連結下載,如下所示
https://developers.google.com/android/images/
分別有不同機型、不同Android版本對應的系統鏡像,限於篇幅就不一一截圖
下載第三方recovery包TWRP(用於對Android機內部的數據或系統進行修改 類似windows PE或DOS),下載連結如下
https://twrp.me/Devices/ (根據android設備型號搜索下載對應的recovery包,如果下載速度慢,可以在公眾號回復"twrp recovery包",這個recovery包僅適用於nexus 5,如果有其他機型需要也可以聯繫我幫忙下載)
下載su root工具SuperSU(支持Android 4.2-8.0系統root),下載連結如下
https://supersu.dev(如果下載慢,可以在公眾號回復"superSU"進行下載)
下載su root工具magisk(支持Android 4.2-10系統root),下載連結如下
https://github.com/topjohnwu/Magisk(如果下載慢,可以在公眾號回復"Magisk"進行下載)
下載adbd.apk,(這是用於實現adb root功能的,Android系統版本支持4.2-6.0以下,如果刷的系統是6.0及以上,則adbd.apk實現不了adb root功能),下載連結如下
https://forum.xda-developers.com/showthread.php?t=1687590 (如果下載慢,可以在公眾號回復"adbd.apk"進行下載)
下載xposed框架(如果下載速度慢,可以在公眾號回復"xposed"進行下載),下載連結如下
https://repo.xposed.info/module/de.robv.android.xposed.installer
下載frida-server(如果下載速度慢,可以在公眾號回復"frida-server"進行下載),下載連結如下
https://github.com/frida/frida/releases
二、開始對nexus 5刷機(Android 6.0.1)
需要刷機的nexus 5手機連接到電腦上,並確認已經設置為允許usb調試
確認platform-tools目錄已經設置為PATH環境變量,使用adb devices命令進行測試(不會提示不是內部或外部命令),如下所示
執行adb reboot bootloader指令使手機進入fastboot模式,如下所示
如果手機的bootloader還沒解鎖(可以看上圖的LOCK STATE),則需要執行fastboot flashing unlock進行解鎖
解壓Android6.0.1系統鏡像,如下圖所示
進入解壓後的目錄,執行flash-all.bat批處理文件開始刷Android6.0.1系統,等待最後刷完成功即可,如下所示
如果在執行flash-all.bat出現Snapshot cancel
fastboot: error: Command failed 則是因為電腦下載的platform-tools版本太高,如下所示
需要使用低版本的platform-tools進行替代,具體的操作步驟,可以參考以下文章
https://www.jianshu.com/p/d40db7e08e3e
三、刷入第三方recovery(TWRP)到新系統中
需要刷recovery的nexus 5手機連接到電腦上,並開啟usb調試
在刷第三方recovery之前,我們先把待會兒要用來root的magisk複製到手機的/sdcard或者/sdcard/Download中(這是用來root系統的。也可以複製superSU到手機中,執行adb push Magisk-v20.4.zip /sdcard/Download指令,superSU支持的Android版本只到8.0,現在官方也停止了維護,因此本文我以magisk為例),如下所示
執行adb reboot bootloader 指令使手機進入fastboot模式
執行fastboot flash recovery twrp.img 指令刷入第三方recovery,如下所示
刷完recovery後,不要重啟手機,不然recovery又會被刷回原來的,這樣當進入recovery後,會提示如下錯誤
四、對剛刷完的Android系統進行root
刷完recovery後,不重啟手機,直接通過音量上下鍵選擇recovery模式,電源開關確認,進入recovery模式,如下所示
安裝magisk,選擇 install ,找到上面複製到手機中的magisk壓縮包,安裝壓縮包,等待安裝成功,最後選擇 Do not Install 不要安裝TWRP App。至此,通過magisk root手機就完成了,具體如下所示
五、安裝Xposed框架、frida-server 及Android逆向分析中常見的插件
執行adb install XposedInstaller_3.1.5.apk指令,安裝Xposed,安裝成功後打開,如下所示
安裝xposed成功後,打開xposed,會提示xposed框架沒有安裝,則需要安裝xposed框架,安裝後重啟即可,具體如下所示
安裝android逆向分析app時,常使用的xposed插件
BuildProp Enhancer:
修改Android系統的ro.debuggable屬性,使安裝在手機上的app都能夠被調試,下載連結如下:
https://repo.xposed.info/module/com.jecelyin.buildprop
項目地址如下:
https://github.com/jecelyin/buildprop
JustTrustMe:
繞過app的證書校驗,方便抓取數據包,進行安全分析,下載連結如下:
https://github.com/Fuzion24/JustTrustMe
GG Tools:
繞過app對手機的root檢測、繞過app的重籤名校驗、隱藏xposed框架等,便於安全分析,下載連結如下:
https://repo.xposed.info/module/com.gojek.galau.ggtools
更多xposed插件則需要根據我們分析時的具體情況再尋找或者自己開發所需的插件,後面有有趣的插件也會再及時更新
當然,如果習慣使用frida的。也可以在手機中開啟frida服務,先將frida-server複製到手機中,然後啟動frida-server,具體的可以參考以下文章
android逆向之frida安裝與使用
以下是android逆向分析中常使用的frida腳本,連結如下:
https://github.com/m0bilesecurity/Frida-Mobile-Scripts/tree/master/Android
綜上所述,該篇文章主要是使用Android官方的系統鏡像進行刷機,然後安裝配置Android逆向所需的框架及插件。在刷機的時候,我們也可以選擇自己修改編譯Android系統源碼,再進行刷機,定製我們自己所需的分析環境。