动态调试smali的步骤

http://www.cnblogs.com/gordon0918/p/5570811.html

1、使用apktool反编译要动态调试的apk,反编译apk后,设置androidmanifest.xml中 application的 android:debuggable="true"


动态调试smali的步骤_第1张图片
动态调试smali的步骤_第2张图片

2、合包并安装


动态调试smali的步骤_第3张图片

3、android studio安装 smalidea后,android studio > file > new > import project ,只将smali代码导入

想要动态调试Smali还需要安装一个插件Smalidea,可以在AS的settings->plugins里面安装。(插件下载链接:http://pan.baidu.com/s/1o8RL9jW)


动态调试smali的步骤_第4张图片

4、studio > run > edit configuration >+号:添加一个remote:设置名称和端口


动态调试smali的步骤_第5张图片

5、在AS的终端以调试模式启动应用,进程挂起,并找到进程号

adb shell am start -D -n com.packagename/com.hh.MainActivity (这个命令跟着包名和mainActivity)


动态调试smali的步骤_第6张图片

adb shell ps | grep packagename (找到此包名进程号)


6、设置端口转发,这条命令的含义是在本地8800端口(AS  remote里配置的)与手机28881进程之间建立一条通道,当开始调试时,AS连接本地的8800端口,通过这条通道控制程序的运行

adb forward tcp:端口号 jdwp:进程号 (jdwp 是)


7、在as 工程的smali代码里打断点


动态调试smali的步骤_第7张图片

8、as > run debug


动态调试smali的步骤_第8张图片
动态调试smali的步骤_第9张图片

9、注意打断点

{�

你可能感兴趣的:(动态调试smali的步骤)