动态调试某个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连接电脑。

出现下图就是成功连接上了,

 

然后就可以愉快的下断点了

 

posted @ 2019-06-18 17:36  带狗狗带  Views(1004)  Comments(0Edit  收藏  举报