Android逆向破解:使用Android Studio调试反编译后的smali代码

目录

目录

所需工具

Android Killer:使用及下载请看我的这篇文章Android逆向破解:Android Killer使用
Android Studio:下载地址http://www.android-studio.org/
ideasmali插件:官网https://bitbucket.org/JesusFreke/smali/downloads/,如果使用官网下载慢的话可以用这个下载:https://pan.baidu.com/s/1htl26qS 密码:0pre
Android模拟器:这里我用的是逍遥模拟器https://www.xyaz.cn/

调试步骤

1.对目标Apk进行反编译
具体的反编译步骤可以看我的这篇文章Android逆向破解:Android Killer使用
这里有的小伙伴可能会出现反编译失败的情况,一般是因为apktool版本过低导致的,可以去官网下载最新的然后替换本地的即可。
在本次案例中我反编译了一个我自己的Apk,反编译后的项目如下:


2.修改文件
这里我们需要修改AndroidManifest.xml,让项目可以进行断点调试,修改如下:

在application标签内增加android:debuggable="true"
3.回编译修改后的代码
接下来就可以点击编译按钮进行回编译了。

编译完成后回显示apk的路径,点击路径即可打开对应的目录。

4.安装修改后的Apk到模拟器
这时候我们打开模拟器,将修改后的apk拖到模拟器中就能进行安装了。

5.Android Studio安装ideasmali插件
接下来我们打开Android Studio,找到File->Settings->Plugins->Install Plugin from Disk,然后选择下载好的ideasmali插件即可安装,安装成功后需要重启Android Studio。


6.使用Android Studio打开反编译后的项目
重启完Android Studio后,点击File->New->Import Project,然后选择反编译后的Project目录,然后一路Next即可。



打开后的项目大概是这样的,因为安装了ideasmali插件所以可以语法高亮显示。

7.进行断点调试
最后我们可以使用adb的命令对目标应用进行断点调试,命令的使用方法如下:

adb shell am start -D -n 应用包名/入口Activity名称

我的项目对应执行的命令如下:

adb shell am start -D -n com.itfitness.fitnesslib/com.itfitness.fitnesslib.MainActivity

这里可能会出现如下情况:



原因是因为模拟器没有和Android Studio的adb建立连接,可以使用如下命令进行连接:

adb connect 127.0.0.1:21503

这里附上各种模拟器的端口号



执行完命令后我这里已经显示连接成功了



接下来继续执行adb调试命令
adb shell am start -D -n com.itfitness.fitnesslib/com.itfitness.fitnesslib.MainActivity

如下情况表示执行命令成功




接下来在Android Studio中点击右上角的Debug图标



这时出现如下界面,然后选择你的目标进程点击ok

如果找不到目标进程的话可以勾选Show all processes

点击完Ok之后就可以愉快的进行断点调试了:


你可能感兴趣的:(Android逆向破解:使用Android Studio调试反编译后的smali代码)