安全工程师在进行Android逆向的时候常常会有动态调试的需求,由于厂商对外发布的APP都是release版,发布产品时都会将debuggable设置为 false,使第三方不能直接调试分析APP。

目前流行的方法是修改APK的 AndroidManifest.xml 将 android:debuggable 设置为 true,再重新打包签名,操作较简单,但如果碰到做了自校验加固的APK包,还要去除APK的自校验才能重打包成功,对安全人员的逆向水平和技术要求又 提高了不少。另一种方法需要刷机,定制boot.img 修改 prop里的ro.secure和ro.debuggable,操作较麻烦。

下面我就介绍一种简单且成本低的方法,使用Xposed的HOOK插件xinstaller开启系统中所有应用的调试功能:

第一步,非常简单,在已经ROOT好的手机或虚拟机里安装好xpose框架和xinstaller插件

http://repo.xposed.info/module/de.robv.android.xposed.installer

http://repo.xposed.info/module/com.pyler.xinstaller

第二步,开启模块,点击xinstall插件设置专家模式,进入其他设置开启调试应用,最后重启

android release 方式调试 安卓应用调试_sed

android release 方式调试 安卓应用调试_sed_02

android release 方式调试 安卓应用调试_sed_03

android release 方式调试 安卓应用调试_Android_04

最后我们就可以任意调试系统中的任意APP了, jdwp协议类型的调试工具JDB和andbug都可以顺利使用。

adb forward tcp:12345 jdwp:pid号

jdb -attach localhost:12345

android release 方式调试 安卓应用调试_Android_05

扩展阅读

Android应用程序开发以及背后的设计思想深度剖析浅谈Android应用保护(一):Android应用逆向的基本方法

Android打包的那些事

Android应用开发性能优化完全分析

使用 Ant 实现批量打包Android应用

为您推荐

jvm调优总结

贝叶斯分类

Android ImageView图片自适应

jQuery图片集展示插件:Portfoliojs

iOS 第三方开源库-----AFNetworking