安卓從入門到進階第十章(Smali調試)

640?wx_fmt=jpeg

Smali 是安卓 Apk 反編譯出來的格式,類似於我們 PC 上面的彙編語言。


語法可以參考這個文章:

https://blog.csdn.net/yuanguozhengjust/article/details/80493963


PC 上的反編譯調試工具用 ODIDA(這個也可以調試 Android ),我們這一節想說說 Android Studio 調試 Smali 的 方法。

爲什麼要做這個調試?我們按正常的邏輯是 Smali 文件轉化成 java 去看,先看個大概,然後如果是運算之類的,我們有時候需要調試,不斷驗證變量值。那麼調試就顯得很重要。


先放之前的幾個調試文章:

然後接下來我們補充 Smali 的調試,把 Android 上的調試策略講完。

1 下載 Smalidea 包

從https://bitbucket.org/JesusFreke/smali/downloads/ 

下載 smalidea-0.05.zip ,獨立的 jar 包是反編譯和打包工具,自己想研究可以下載看看,這裏我們不用。


640?wx_fmt=jpeg


2 Android studio 安裝 Smali 插件

File -- Settings  搜索 plugins 選擇從Disk加載

640?wx_fmt=jpeg

    

3 下載反編譯 Apk 工具 APKDB

從https://www.duote.com/soft/73200.html

下載下來安裝就可以了。


4 反編譯 Apk

拿到我們需要調試的 Apk ,選擇 Apk,右鍵菜單,使用 APKDB 編譯

640?wx_fmt=png

一路回車就可以了。編譯完會在當前目錄下出來一個同名字的目錄,就是反編譯出來的內容。


640?wx_fmt=png

然後刪掉 original 目錄。

5 將我們反編譯出來的目錄,導入 Android Studio. 

640?wx_fmt=png

選擇我們的目錄,一路下一步即可。

6 額外備註

當前我的手機是 ROOT 版本,Apk 不需要調試版本,直接安裝運行起來。不是 ROOT 版本,就配置成調試版。(xml配置 android:debuggable="true")


7 開始調試

640?wx_fmt=png

運行Apk,然後使用 Run -- Attach .... Process  選擇我們的包名,點擊確定即可。


然後在我們需要斷下的地方,設置斷點,這裏設置在 onclick 方法裏面。

640?wx_fmt=png

$1 代表匿名類。然後我們點擊 Apk 中的按鈕,就會在這裏斷下來。

640?wx_fmt=jpeg

剩下的就是你自由發揮了。

--完--



後臺回覆 精華 獲取去年一年的精彩 PDF。

推薦你讀:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章