準備工具:
1. IDA Pro v6.6 以上
2. Android 模擬器 CPU armeabi-v7a (可使用Android Studio內建的)
一、Android Native Debugger環境設置

1. IDA Pro v6.6 以上
2. Android 模擬器 CPU armeabi-v7a (可使用Android Studio內建的)
一、Android Native Debugger環境設置
- 從路徑C:\Program Files\IDA 7.0\dbgsrv 獲取android_server (這是CPU armeabi-v7a 的環境所使用的)
- 開啟Android模擬器後再Android裡面創建資料夾 - adb shell mkdir /data/tmp
- 將android_server移至Android裡面 - adb push android_server /data/tmp
- 讓android_server有執行的權限 - adb shell chmod 777 /data/tmp/android_server
- 執行android_server – adb shell、cd /data/tmp/、./android_server
- 設定port forward (讓電腦端的IDA Pro 能和Android端的android_server通訊) - adb forward tcp:23946 tcp:23946
二、IDA Pro環境設置






到這邊都已經配置完成,可以專心Debugger Native的程式碼,不過這裡還會遇到一些問題,就是分析不到 .so 的初始化程式碼,然而只能了解APP執行後觸發到Native的程式碼,並分析他的事件,那如果Native的初始化程式裡面有些會對一些Dex加密、解密的運作,就不能破解它的演算了。
下個章節就會對APP還未執行就中斷到Native的程式起始位址。

- 開啟IDA Pro 後,將 .so (由於Android Studio 在編譯時會有很多版本要確認是armeabi-v7a)檔案拖曳到IDA Pro視窗裡面
- 在IDA Pro 上面的工具列選擇Debugger -> Select Debugger -> Remote ARM Linux/Android debugger
- 設置Remote Debugger的連線,Debugger ->Process options,在Hostname填入localhost
- 執行APP
- Debugger APP – 在IDA Pro 工具列選擇Debugger -> Attach to process,然後再尋找要Debugger的APP
- Debugger warning – 會跳出一些警告,都是詢問 .so檔是否與Android裡的 .so 是否一樣,都選擇Same就可以了
到這邊都已經配置完成,可以專心Debugger Native的程式碼,不過這裡還會遇到一些問題,就是分析不到 .so 的初始化程式碼,然而只能了解APP執行後觸發到Native的程式碼,並分析他的事件,那如果Native的初始化程式裡面有些會對一些Dex加密、解密的運作,就不能破解它的演算了。
下個章節就會對APP還未執行就中斷到Native的程式起始位址。