apk逆向 - smali動態調試


author: Dlive

date: 2016/10/6

0x00 前言

​ 之前有人問過smali的動態調試方法,其實網上已經有很多文章講這些內容,但是為了方便大家學習,我還是寫一下讓大家少走點坑吧。

0x01 Smali的動態調試

​ 這里介紹一種比較方便的調試方法,這個調試方法不需要重打包apk,操作簡單也比較常用。

1.調試環境

​ 推薦一下AndroidStudio(下文簡稱AS)這款IDE,既然Google已經有親兒子AS,我覺得Eclipse其實沒有什么太大使用必要了。

​ 關於怎么安裝AS我就不說了,網上隨便都能搜到很多帖子。

​ 安裝后AS后,想要動態調試Smali還需要安裝一個插件Smalidea,可以在AS的settings->plugins里面安裝。(插件下載鏈接:http://pan.baidu.com/s/1o8RL9jW)

​ 我的調試環境是一台root過的且開啟了調試功能的手機(ps.模擬器應該可以,我沒試過)

​ 如何開啟調試功能,比較簡單的方法是安裝一個xposed插件:xinstaller(安裝可參考:http://www.open-open.com/lib/view/open1426304176732.html)

2.調試步驟

​ 首先使用AndroidKiller反編譯apk,反編譯效果如下:

0

​ 使用AS打開(File->Open)反編譯結果所在文件夾(Project)

1

​ 在AS中配置遠程調試,打開Run->Edit Configurations,添加遠程調試 (點擊如下圖加號選擇Remote)

3

​ 配置遠程調試,Name隨便填就好,host為localhost,端口8700

4

​ 打開monitor(安裝SDK后在命令行下直接輸入monitor即可),如果手機成功開啟了調試功能,可以在monitor中看到正在運行的apk包名

5

​ 在手機上安裝apk后以在terminal運行如下命令使apk以調試模式運行

adb shell am start -D -n packageName/ActivityName

​ 我測試所使用的apk包名為com.example.findpass,活動名為com.example.findpass.MainActivity(可簡寫為.MainActivity)

6

​ 運行上述命令之后可以看到手機屏幕上會彈出一個Waitting For Debugger的框,monitor中com.example.findpass進程前會有個紅色的小蟲子的圖標

7

​ 在AS中設置斷點

2

​ 然后選擇Run/Debug,找到剛剛設置的調試選項進行調試即可

    你可以在調試器中看到變量的值


免責聲明!

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



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