查看原文
其他

Android 调试任意APK - smail工程--多进程

younghare 看雪学院 2019-09-16

本文为看雪论坛优秀文章

看雪论坛作者ID:younghare



好久没有来看雪发表了,今天抽空把有道云笔记的smali多进程调试方法发表上来。


只为伙伴们更方便调试smali代码。


准备工具:

Android Studio

adb

App对应的smali工程

ddms (Android Device Monitor)

Smalidea (Android Studio动态调试smali插件)

Android Studio3.2.1动态调试smali

BuildProp.apk(用于修改apk的调试标志)

Xposed框架

apkDB(本文将用该工具把apk转成smali工程)



App对应的smali工程准备





   

apk转smali工程的方法有很多,在次我介绍一个最为简单的办法。


1.下载apk到硬盘,并改扩展名为zip(其实不修改也可以)。

2.用解压软件解压到temp目录。

3.在资源管理器中使用apkDB编译不同的dex文件。(apkDB回自动插件对应的目录如:Smali_classes8目录)。

4.新建AppSmali目录(你的smali工程目录),把各个 Smali_classesX(X表示不同的dex)目录下的文件copy到同一个目录 AppSmali。




Android Studio 安装Smalidea插件





Smalidea插件建议到官方下载最新版本,比如Smalidea-0.04.zip在Android Studio3.x好像支持的效果不好。

在此提供Smalidea-0.05.zip下载链接:

https://yunpan.360.cn/surl_y3Xx2pkJFCW (提取码:997a)




Android Studio导入App Smali 工程





File/New/Import Project


选择smali工程目录:



调试前准





配置AS调试配置,Run->Edit configurations,点击+号,新建remote类型调试器,设置Name, 修改端口号,可以选择被占用的任意端口,本次设置为8700。



ddsm(Android Device Moniter)中选中进程






按debug模式启动apk



用adb命令启动apk(如果断点不是在app启动过程,可以跳过这一步,建议从这布开始)。

命令格式:adb shell am start -D -n 包名/activity路径。

这里以微信为例:

adb shell am start -D -n com.tencent.mm/.ui.LauncherUI


手机出现如下界面:



在Android Stuido上attach上进程。


在ddms上可以看到被debug的图标变为绿色。


App应用上触发可能发生断点的事件



如果是启动过程中的断点,跳过此步。




如果要调试一个App的两个或多个进程



如果要调试一个App的两个进程或多个进程,我是用同时打开2个smali工程或多个工程。

设置romote调试的另外一个端口。

然后同意绑定一下进程。



- End -



看雪ID: younghare

https://bbs.pediy.com/user-746297.htm  


*本文由看雪论坛 younghare 原创,转载请注明来自看雪社区






推荐文章++++

VMP学习笔记之反汇编引擎学习

漫谈挖洞

某企业办公APP逆向TCP协议分析

Unicorn 调用SO之加载模块

FART正餐前甜点:ART下几个通用简单高效的dump内存中dex方法













“阅读原文”一起来充电吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存