動態調試某個apk的smali代碼,微信舉例
本地環境:
PC:windows 10,Intellij IDEA (android studio應該一樣的)
手機:nexus5 8.1系統,
其他依賴:smalidea插件,xposed
插件 https://github.com/JesusFreke/smali
我使用的版本的下載鏈接,也是官方的:https://bitbucket.org/JesusFreke/smali/downloads/smalidea-0.05.zip
這個插件不能在線安裝,需要下載后通過Install plugin from desk來安裝

apktool 反編譯出smali,多dex的apk會反編譯出很多個smali文件夾,我們把它們復制到同一個文件夾內

然后在命令行啟動ddms,命令是monitor,如果沒配置環境變量可以去Sdk\tools里運行,啟動后應該是這個樣子的

但是此時應該看不到應用列表,需要安裝一個xposed模塊來把微信變成debuggable的,我用的是BDOpener,地址在:https://github.com/riusksk/BDOpener
模塊生效后應該和上圖就差不多了,但是只能看到debug列表,不能通過正常的點小蟲子的方式debug,這時去手機端設置。

在開發者選項中找到 選擇調試應用,選上微信,然后打開等待調試程序的開關。
這時運行微信就會變成這樣

是不是熟悉多了?
然后回到IDEA,來配置我們的調試器。
先把剛才反編譯出來的smali整理一下,放到一個src文件夾,比如wechat/src
然后用IDEA打開項目,Android Studio可以用Open an existing Android Studio Project
然后需要右鍵點擊src,選擇Mark Directory As > Sources Root

然后給項目設置一個jdk,我的是1.8

然后配置run config


取個名字,配好端口號就行。
讓手機端打開微信,運行我們的調試器吧,當然手機要usb連接電腦。

出現下圖就是成功連接上了,

然后就可以愉快的下斷點了


浙公網安備 33010602011771號