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