首页
社区
课程
招聘
[原创]android 调试任意apk -smail工程--多进程
发表于: 2019-8-28 13:34 9024

[原创]android 调试任意apk -smail工程--多进程

2019-8-28 13:34
9024

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

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

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



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

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

这里以微信为例:

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


在smali工程中设置好断点,并触发app需要被断点的逻辑

看到调试的信息

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


以微信为例它有多个app,假设现在我们也需要调试:push进程

通过ddms上可以看到该进程是8609端口

复制smali工程到另外一个目录,用android stuido在新窗口打开,并设置remote端口为8609


    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)


选择smalidea.zip包

Android Studio 导入AppSmali工程


File/New/Import Project



选择smali工程目录




smalidea插件建议到官方下载最新版本,比如smalidea-0.04.zip在Android Studio3.x好像支持的效果不好
在此提供smalidea-0.05.zip下载链接
https://yunpan.360.cn/surl_y3Xx2pkJFCW (提取码:997a)


选择smalidea.zip包


File/New/Import Project



选择smali工程目录


一路next,知道finsh

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







[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-9-7 10:14 被younghare编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (9)
雪    币: 105
活跃值: (549)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你可以研究下,:push  :tools   :sandbox    怎么生成的  直接结束进程 只留一个主进程调试 
2019-8-29 11:46
0
雪    币: 574
活跃值: (405)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习了
2019-8-29 13:44
0
雪    币: 144
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
新出的调试方式
2019-8-31 18:49
0
雪    币: 741
活跃值: (1864)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
5
绿了,绿了,他绿了~
2019-9-2 09:10
0
雪    币: 348
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
已解决
最后于 2019-9-7 23:13 被Wika编辑 ,原因:
2019-9-7 17:31
0
雪    币: 348
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
已解决
最后于 2019-9-7 23:13 被Wika编辑 ,原因:
2019-9-7 20:56
0
雪    币: 15
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
各位大佬请问一下,如果原apk是多个dex,只拿到需要调试的那部分dex可以动态调试吗
2019-9-10 22:45
0
雪    币: 266
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gqm
9
您好,可以找您定做一些东西吗?
2019-9-23 23:39
0
雪    币: 431
活跃值: (1755)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
10
雅鸦歌 你可以研究下,:push :tools :sandbox 怎么生成的 直接结束进程 只留一个主进程调试
有很多逻辑是在其他线程中的:) 比如红包、零钱明细的tcookie
2019-9-24 18:31
0
游客
登录 | 注册 方可回帖
返回
//