Android IDA so文件分析、動態調試-xctf-so easy


 

無反調試步驟:

 1)adb push d:\android_server(IDA的dbgsrv目錄下) /data/local/tmp/android_server(這個目錄是可以隨便放的,server文件根據內核版本更換)。

2) adb shell

3) su(一定要有root權限)

4) cd /data/local/tmp

5) chmod 777 android_server (給android_server可執行權限)

./android_server對本地設備端口進行監聽

6)再開一個cmd:

adb forward tcp:23946 tcp:23946(端口轉發,調試手機上的某個進程要有協議支持通信)讓遠程調試端IDA可以連接到被調試端

7)使用IDA連接上轉發的端口,查看設備的所有進程,找到需要調試的進程。具體步驟方法為:在Debugger選項卡中選擇Attach,選擇android debugger,點擊Ok。

8)動靜結合方式(基地址+相對地址)確定函數地址進行調試。

 

對於有反調試的步驟:

 1)啟動android_server

2)端口轉發adb forward tcp:23946 tcp:23946

3)adb shell am start -D -n 包名/類名;出現Debugger的等待狀態

(說明:以啟動模式啟動,是停在加載so文件之前,包名可以在androidmanifest文件中找到)

4)打開IDA,附加上對應的進程之后,設置IDA中的load so時機,即在debug options中設置;

5)運行命令:jdb -connect com.sun.jdi.SocketAttach:hostname=localhost, port=8700

6)點擊IDA運行按鈕,或者F9快捷鍵。

 

一、使用IDA對so文件進行分析

導出so文件,使用IDA打開。

在IDA中直接搜索該函數,只有一個結果,直接點進去看看。

可以看到通過一系列計算之后,得到的值需要為f72c5a36569418a20907b55be5bf95ad

通過對其算法進行分析,其計算過程是先將輸入值前半部分與后半部分調換,后將相鄰數值兩兩對換,得到flag:90705bb55efb59da7fc2a5636549812a

二、使用IDA對so文件進行調試

https://blog.csdn.net/u012195899/article/details/52780062

找到IDA中的dbgsrv文件夾下的android_server文件,根據內核版本,將這個文件使用adb命令上傳到手機/data/local/tmp目錄下 

上傳過程中有時會出現 Read-only file system 提示,大概率是權限問題:

1、adb remount,這條命令的功能是重新裝載Android文件系統;

2、adb shell—su— mount -o rw,remount /system

給予權限777(chmod 777 文件名)后啟動傳入的腳本文件。

 

成功啟動后開啟端口轉發(固定端口23946)。

adb forward tcp:23946 tcp:23946

 

  • 啟動后無法獲取模擬器IP, 啟動后提示 Address already in use(端口被占用)
  • 通過查詢發現IDA,frida等,由於內核問題都無法使用雷電模擬器進行連接,故更換夜神模擬器

https://my.oschina.net/u/4940693/blog/4927341

 

使用夜神模擬器成功連接。

ctrl+f 搜索需要附加的包名

 

成功附加進入,可以動態分析so文件。

 

通過ctrl+s 可以打開當前加載的so文件目錄,通過搜索so文件名稱,找到需要的so文件。選擇帶有X標識的文件,進入即可跳轉至所需so文件內。

在靜態調試的IDA中找到函數的偏移地址,然后在動態調試的IDA加上so文件基址,跳轉至對應函數位置。

后續調試報錯,判斷還是內核問題,等待使用真機嘗試。

真機使用后還是一樣報錯,嘗試尋找原因。 

更換android_server64文件,重啟設備后,成功連接設備。

通過基地+偏移地址找到目標函數。

 

出現提示 got unknown signal #33

重啟IDA后,繼續操作,成功斷在斷點處,未知原因。

F8單步調試,查看寄存器改變。(前面出現問題是因為鍵盤F8無法使用!!!!!)

后續調試與OD調試相似。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM