Android Studio 动调 APK

Android Studio 动调 APK

一、引言在逆向过程中,发现一些实例对象和方法是动态代理创建并调用的,这就使得静态分析非常困难。而 Android Studio 却能够很好的处理这一问题。因此本文将讲述如何使用 Android Studio 动态调试 APK。

二、事前准备2.1 使 APK 可调试正常情况下 release 包是不允许调试的,所以必须先让 APK 可调试,一般有两种方法:

反编译 APK,修改 AndroidManifest.xml 文件中的android:debuggable 为 true ,再重打包。

测试机已 root。

2.2 插件安装要想 Android Studio 能够调试 APK ,需安装如下两个插件:

Smalidea

插件地址:https://github.com/JesusFreke/smalidea

下载下来后,在 setting->Plugins,选择 Install Plugin from Disk,找到下载下来的 Smalidea。

Smali Support

在 setting->Plugins 的 Marketplace 搜索 Smali Support 就可以直接安装。(我这里已经安装过)

三、导入APKAndroid Studio 的菜单栏 File->Profile or Debug APK 或者起始页面打开 profile or Debug APK

如果没有找到,应该是 Android APK Support 这个插件没有启用,Settings中启用该插件即可。

选择目标APK后,等待反编译完成。

然后切换到 Project 视图

把反编译出来的smali文件夹改为源码文件目录,右键 smali文件夹 -> Make Directory as -> Sources Root

四、配置SDK右键工程主目录,选择 Open Module Settings,设置 Project SDK 和测试手机的系统版本保持一致。

五、创建调试器打开 Edit Configurations

点击左上角加号 -> 选择Remote JVM Debug

配置信息可默认,但这里的 port 需要跟后续 adb 端口转发时的 port 保持一致。

六、建立端口映射运行要调试的应用,获取它的进程pid

1adb shell "ps | grep 目标包名"

进行adb 转发

1adb forward tcp:5005 jdwp:pid

此处 tcp 端口与调试器中的 port 保持一致,jdwp 的 pid 为目标进程的 pid。

七、开始调试下断点这事就不用多说了。

下完断点后,选择 Attach Debugger to Android Process

双击要调试的目标程序。

如果报错:Unsupported device. This device cannot be debugged using the native debugger

那么再刚才的 Attach Debugger to Android Process 出现的页面中,选择 Debug Type 为 Java only。

最后成功开启调试,触发了所下的断点。

参考:

android studio动态调试apk最详细教程_apk调试-CSDN博客

Android Studio 动态调试apk - 知乎

AndroidStudio 无源码调试 release apk - DysaniazzZ

相关推荐

哈尔滨啤酒把世界杯送到你家
beat365体育官网平台

哈尔滨啤酒把世界杯送到你家

📅 10-28 👁️ 7597
原创《美女请别影响我成仙》图文攻略 全剧情全后宫流程攻略【游侠攻略组】
365网手机版下载

原创《美女请别影响我成仙》图文攻略 全剧情全后宫流程攻略【游侠攻略组】

📅 08-24 👁️ 3370
骑得好累,但又很爽:现在很火的摩拜单车之初体验
beat365体育官网平台

骑得好累,但又很爽:现在很火的摩拜单车之初体验

📅 06-29 👁️ 1529