动态调试smali代码

Posted seliote

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态调试smali代码相关的知识,希望对你有一定的参考价值。

android Killer对应用进行反编译为smali代码,看看Manifest文件中application标签里面是否有android:debuggable="true",没有的话自己添加,在工程管理器中找到smali文件夹,右键打开路径然后将smali文件夹复制出来并重命名为src

为Android Studio安装smaliidea插件

启动android device monitor,AS 3.0+已经不支持内部直接启动ADM了,路径切换至${PATH}Sdk ools然后执行monitor.bat即可

Android Killer打开调试的应用,记住包名与入口点,将应用安装到设备

执行adb shell am start -D -n ${PackageName}/${EntryActivityName}开启debug模式,此时设备将显示等待调试

在ADM中打开devices界面,记下debug应用倒数第二列的值与最后一列的第二个值,然后关掉ADM(否则会占用8700端口,一般是8700)

进行端口转发adb forward tcp:${Value2} jdwp:${Value1},其中${Value2}与${Value1}是上面记下来的那两个值

AS里File -> New -> Import Project -> 选中复制出的src的上级目录 -> ok -> 全部next直至finish,项目结构改为Project,对src文件夹右键Make Directory As ->Source Root

配置远程调试选项,Run -> Edit Configurations -> 添加一个Remote配置 -> 改名 -> 改端口为8700,然后OK

然后File -> Project Structure中选择你的JDK,然后OK

再打开src中的smali文件,即可对其下断点

接下来Run -> Debug ${Name}即可进行调试,这里的名称是上方调试选项的名称,Watches窗口中可以查看寄存器什么的值(需要自己添加),然后还可以执行中添加smali断点

以上是关于动态调试smali代码的主要内容,如果未能解决你的问题,请参考以下文章

AndroidStudio使用AndroidStudio动态调试Smali文件

Android逆向 Android Studio动态调试smali代码

AndroidStudio安装ideasmali插件,动态调试smali代码

Android studio动态调试smali

AndroidStudio调试smali代码

安卓动态调试七种武器之长生剑 - Smali Instrumentation