Android studio动态调试smali代码

1.用AndroidKiller把apk反编译成smali文件; 
新建一个文件夹 然后把打开文件路径目录里的smali文件夹复制到文件中并改名为src ; 

反编译后记得查看清单文件,在application标签里面要有 android:debuggable=”true” 这句代码,没有是不能调试apk的,有的apk中没有这句代码要自行添加上,再回编译apk,便于后续安装apk; 
2.安装ideasmali插件,File->Settings->Plugins,下载安装ideasmali插件; 
打开Android Device Monitor,(Tools/Adndroid/Android Device Monitor); 
找到要调试APK的包名和入口的Activity,查看清单文件; 
把自己要调试的APK安装到手机中 并用数据线连接手机 打开USB调试模式,也可以装在模拟器上,adb install pc上apk路径; 
打开命令行 输入命令 adb shell am start -D -n 包名/入口activity, 对apk进行动态调试 这条命令运行后手机屏幕将会进入到调试界面(如果手机屏幕没有进入到调试界面说明USB没有连接好手机 或者USB调试模式 没有打开 或者其他原因); 
查看Android Device Monitor 记住下图圈起来的两个值 然后把Android Device Monitor关掉(这里一定要关掉,因为它会占用8700端口 导致后面转发端口失败); 

è¿éåå¾çæè¿°

如果还遇到 “error: could not install smartsocket listener: cannot bind to 127.0.0.1:port号: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 (10048)”这种问题。 
解决:Cmd:netstat -nao | findstr port号,查找占用进程的pid 
然后任务管理器关掉相应pid的进程。

3.用AndroidStudio导入文件夹(里面含有smali文件改名后的src文件夹),next知道finish; 
点击Android选择Project 对之前反编译的 src文件夹右键–>Make Directory As —>Source Root; 
配置远程调试的选项,选择Run–>Edit Configurations 并增加一个Remote调试的调试选项,端口选择:8700; 
选择File–>Project Structure 配置JDK; 

è¿éåå¾çæè¿°
4.下断点 下好断点之后Run–>Debug’smali’,这里的smali是我们之前配置好的调试选项; 
按F8执行下一步 F9运行程序 
可以看到程序执行的逻辑 Watches窗口中可以点+按钮添加寄存器的名字 就可以看到这个寄存器的值。 

è¿éåå¾çæè¿°

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值