Android 逆向初探(二)

來源:互聯網
上載者:User

標籤:libc   資料   ida   title   問題   XML   man   知識庫   key   

一、對android app進行分析時, 需要對其進行動態調試。1、IDA 附加進行調試

將ida目錄中的android_server push到安卓手機上

adb push android_server /data/local/tmp

1)、執行android_server:

adb shell /data/local/tmp/android_server

2)、連接埠轉寄:

adb forward tcp:23946 tcp:23946

3)、偵錯模式啟動程式,手機介面會出現Waiting For Debugger頁面

ddms

adb shell am start -D -n 包名/類名

4)、開啟32位的IDA,IDA附加並設定調試選項

GO -> Debugger -> Remote ARMLinux/Android debugger

 

Debugger — Debugger Options

 

 5)命令列中執行: 

ddms(為了使用jdb命令)

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700 

其中port=8700是從ddms中看到的。

 6)、下斷點

附加完成之後,會停在so模組中。此時按下Ctrl + S,彈出模組列表框,搜尋so檔案名稱。

記錄下基地址。要下斷點的函數加上ida靜態分析時的位移地址,得到記憶體中的地址,G跳轉到該函數處,F2下斷點。

7)、 F9運行8)、 斷下

使用F8進行單步調試,F7進行單步跳入調試。

2、dd命令直接dump記憶體中so的資料

1)、運行app

2)、將記憶體裡的資料拷貝出來。

adb shell

su

ps | grep com.tyomcat.crackme  擷取so的進程ID

cat /proc/(PID)/maps | grep libcrackme.so 擷取so在記憶體中的基地址

dd if=/proc/(PID)/mem of=/sdcard/1.mem bs=1 skip=(so的基地址)  count=(so檔案大小)

adb pull /sdcard/1.mem  

3、用kill命令殺死進程

1)、執行android_server:adb shell /data/local/tmp/android_server

2)、連接埠轉寄adb forward tcp:23946 tcp:23946

3)、運行程式

4)、ps 擷取pid

5)、命令:kill -19 <pid>   可以讓進程暫停

6)、IDA附加,動態調試。

二、反調試技術1、迴圈檢測TracePid的值,如果為0,那麼代表app進程在被trace,那麼就直接停止退出程式。

  IDA是使用android_server在root環境下注入到被調試的進程中,那麼這裡用到一個技術就是Linux中的ptrace,那麼Android中如果一個進程被另外一個進程ptrace了之後,在他的status檔案中有一個欄位:TracerPid 可以標識是被哪個進程trace了,我們可以使用命令查看我們的被調試的進行資訊。

cat /proc/(PID)/status

2、執行jdb命令時報錯

無法串連到目標的VM,那麼這種問題大部分都出現在被偵錯工具不可調試,在AndroidManifest.xml添加android:debuggable屬性:

回編譯:java -jar apktool.jar b -d out -o debug.apk

簽名apk:java -jar .\sign\signapk.jar .\sign\testkey.x509.pem .\sign\testkey.pk8 debug.apk debug.sig.apk

 

Android 逆向初探(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.