012 动态调试smali代码
文章目錄
- 前言
- 配置調(diào)試插件
- 調(diào)試插件的使用
- 總結(jié)
- 常見問題
前言
之前分析游戲進(jìn)行破解的時候,都是通過字符串和日志的方式來對程序進(jìn)行靜態(tài)分析。但是在遇到算法類型的程序時,這種方法就顯得效率特別低,所以就需要對代碼進(jìn)行動態(tài)調(diào)試。
配置調(diào)試插件
使用Android Studio可以動態(tài)調(diào)試Smali代碼,需要用到一個插件smalidea-0.05.zip
打開插件選項(xiàng)
點(diǎn)擊Install plugin from disk
找到插件目錄,點(diǎn)擊確定,然后重啟IDE
調(diào)試插件的使用
將apk導(dǎo)入到Android Killer,點(diǎn)擊工程管理->在Windows Explorer中打開
這個文件夾就是Android Killer反編譯后生成的目錄文件
- Bin:編譯后生成的apk文件
- Project:反編譯后生成的文件,內(nèi)含Smali代碼
- ProjectSrc:Dex2jar工具生成的jar文件
- cfg.ini:配置文件
我們在Android Studio中導(dǎo)入Project文件夾即可
點(diǎn)擊Import Project導(dǎo)入項(xiàng)目,項(xiàng)目路徑不能有中文字符
一直點(diǎn)擊Next
項(xiàng)目默認(rèn)用Android apk的方式顯示路徑,這里需要切換為Project
通過Android Killer中的入口類信息找到onCreate方法
在函數(shù)開頭的位置下斷
確保adb能夠連接上模擬器,然后輸入下面這條命令
adb shell am start -D -n com.bufish.org/.LogoActivity以調(diào)試方式啟動APP
打開Monitor,查看調(diào)試端口為8700
然后點(diǎn)擊Add Configuration增加一個配置
這里需要把Android Studio更新到4.2,然后把插件換成smalidea-0.06.zip,否則無法繼續(xù)后面的步驟
點(diǎn)擊加號,新增一個Remote
修改名稱和端口,點(diǎn)擊apply
開啟Debug,斷點(diǎn)斷下說明遠(yuǎn)程調(diào)試連接成功
F9運(yùn)行程序,找到order方法
點(diǎn)擊購買金幣
此時程序斷下
在控制臺左邊是調(diào)用棧,中間是參數(shù),如果還想查看其他變量,可以在右側(cè)按加號添加
總結(jié)
動態(tài)調(diào)試smali代碼步驟總結(jié)
常見問題
模擬器無法在monitor中正常顯示進(jìn)程列表
關(guān)掉模擬器,結(jié)束掉adb進(jìn)程,重啟模擬器
調(diào)試連接的端口無法連接8700
換進(jìn)程另一個端口
總結(jié)
以上是生活随笔為你收集整理的012 动态调试smali代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《全民捕鱼》游戏分析
- 下一篇: 013 Android锁机病毒分析