【Smali】Smali文件的動態調試


1.簡介

smalidea是一個IntelliJ IDEA/Android Studio smali語言插件,可實現動態調試smali代碼。下載地址為:https://github.com/JesusFreke/smali/wiki/smalidea。Android Studio的安裝,就是傻瓜式的安裝,一路next下去。接下來筆者介紹一下筆者的軟件環境:jdk 1.8,android studio 2.3,smalidea 0.0.5,測試的app是筆者寫的一個demo.

2.動態調試Smali需要的軟件

調試的過程中需要准備的軟件有android studio、smalidea、baksmali。經過筆者的測試,發現不同版本的軟件搭配,會得出許多問題。這里筆者測試出,在筆者的軟件環境下情況正常,Android Studio動態調試AKP需要的軟件集合

3.動態調試smali

3.1 生成Smali文件

將需要編譯的軟件放到apktool目錄下面。

然后執行這個命令:

java -jar baksmali-2.0.3.jar test.apk -o ./projects/test/src

就可以得到projects這個文件夾。在執行上面這行代碼時,可能會遇到“com.beust.jcommander.MissingCommandException: Expected a command”的異常信息。這時候可以運行

java -jar baksmali-2.0.3.jar -?

來查看幫助信息。通過報出的異常信息,和觀察的幫助信息后,知道應該添加disassemble命令參數:

java -jar baksmali-2.0.3.jar disassemble test.apk -o ./projects/test/src

3.2 導入Smali文件

打開visual studio軟件,File -> New -> Import Project...

然后選中上面解壓出來的test文件夾

接下來,我們就可以在project中看到自己的項目了

3.3 安裝Smalidea插件

現在還沒有smali插件,所以不會進行語法檢查。

File -> Settings...然后選中Plugins,選中Install plugin from disk... ,然后找到解壓出來的smalidea 0.0.5.zip文件,點擊確認重啟,smalidea插件就安裝成功了。

這時候,筆者建議點開查看打開smali文件看看,如果在Log台中,出現錯誤信息,那么表明你的Smalidea版本不對,不能正常解析。

3.4 設置遠程監聽

點擊 Run -> Edit Configurations...  然后點擊+號,選擇remote。

然后再設置端口為8700

3.5 查看DDMS

在sdk tools中點擊 monitor.bat ,就會看見DDMS,打開客戶端的軟件端口的信息就會出現,然后選中端口。

3.6 開始調試

在打好斷點后,點擊調試按鈕。

然后就會斷點處出現調試界面,


免責聲明!

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



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