使用 IDA 偵錯應用程式¶
本章節將向您介紹如何快速地使用 FIRERPA 及其相關功能和腳本,來進行 Android 應用程式的偵錯。我們的示範環境為 Android 10 系統,主機系統為 Ubuntu 22.04,並已安裝 IDA 7.5 (wine)、ADB、jdb、Python 等相關工具。建議您的 IDA 版本至少為 7.5 或以上,並且安裝最新版本的 FIRERPA 伺服器端。

設定為可偵錯模式¶
在此之前,如果您的系統已經是偵錯模式,則無需執行此步驟。否則,請開啟 FIRERPA 遠端桌面,在終端機中輸入 setdebuggable。輸入指令後,您的手機將會觸發一次軟重啟,不過不必擔心,大約兩分鐘後就會完全恢復正常狀態。此時,您的手機就已經是可偵錯模式了。

安裝 IDA 偵錯服務¶
在繼續偵錯前,您還需要將 IDA 內建用於 Android 偵錯的伺服器端上傳到裝置上。您可以在 IDA 的安裝目錄 dbgsrv 資料夾下找到 android_server 以及 android_server64。如果您偵錯的目標應用程式使用了 32 位元連結函式庫,請使用 android_server,否則請使用 android_server64。將您需要的檔案拖曳上傳或使用 adb push 推送到 Android 裝置上,並賦予其可執行權限。
chmod 755 android_server*
賦予可執行權限後,需要啟動 android_server 服務。您可以透過 adb(需要 root 權限)或遠端桌面終端機執行此可執行程式。較高版本的系統(>=10)需預先設定 IDA_LIBC_PATH 環境變數。
IDA_LIBC_PATH=/apex/com.android.runtime/lib64/bionic/libc.so ./android_server64 -kk
備註
轉發 IDA 偵錯服務¶
對於偵錯這種對即時性及效能要求較高的場合,我們建議使用 USB 連線。請確保您已將裝置插入目前電腦並已完成 adb 授權,接著請執行以下指令。
adb forward tcp:23946 tcp:23946
備註
開始應用程式偵錯¶
我們沒有做太多額外的工作,只是幫您封裝好了一個腳本,可以協助您自動完成後續的大部分操作。依照腳本的輸出提示進行操作即可。您可以在專案的 tools 目錄下找到 ida.py 腳本,使用以下指令即可。
python3 ida.py -d 192.168.0.2 -a com.android.settings

其中,-d 參數即為您的裝置 IP,也就是執行 FIRERPA 服務的裝置 IP;-a 參數則為應用程式的套件名稱。執行指令之後,將會提示您繼續將您的 IDA 軟體附加到應用程式的行程中。



好了,全部流程已經完成。請回到 ida.py 命令列,按下 Enter 鍵,現在您可以繼續偵錯了。