赞
踩
本帖最后由 Jxdm 于 2018-8-7 09:31 编辑
前言:
想把一个APP去广告,结果发现修改关键代码后出现崩溃,于是就想到了动态调试。由于是第一次使用,百度了N个网页,然后慢慢摸索才知道是怎么使用这个的..一直折腾adb,一直连接不了;
本文只是写出如何连接夜神模拟器的方法,比较详细~大神请飘过~;
准备工具
1.Android Studio;2.smalidea-0.05(不要解压);
3.Anroid Killer或者改之理(反编译APK);
3.夜神模拟器
0x0
首先打开Android Studio-点击File,选择Settings
微信截图_20180801195054.png (21.43 KB, 下载次数: 3)
2018-8-1 19:52 上传
点击Plugin--install plugin from disk,再选择smailidea.zip的路径,选择smailidea.zip--最后点击ok,最后重新打开Android Studio就完成安装了
001.png (114.38 KB, 下载次数: 1)
2018-8-1 19:59 上传
0x1
把apk拖入Android killer或者改之理中反编译,然后把整个反编译之后的工程目录复制到一个文件夹(目录不能含有中文!!!),我这里复制到了D:\db\src这个目录
003.png (52.52 KB, 下载次数: 1)
2018-8-1 20:11 上传
0x2
在Android Studio中点击File--New--Import Project--选择0x1的目录--点击ok
321.png (29.84 KB, 下载次数: 2)
Import Project
2018-8-2 13:13 上传
123.png (57.2 KB, 下载次数: 2)
Import Project2
2018-8-2 13:15 上传
然后会弹出窗口,选择第一项,一直点击Next,直到Finish完成导入项目就可以看到smail了
0x3
然后右击db文件夹(就是刚才导入的目录)--mark directory as→Resource root
微信图片_20180801204443.png (60.49 KB, 下载次数: 3)
2018-8-1 20:51 上传
0x4
回到Android Studio,按截图的方法操作,点那个下拉的小图标就会有这个了
微信图片_20180801204443.png (55.36 KB, 下载次数: 3)
2018-8-1 20:54 上传
然后点击”+”号--Remote--Port 填 8700--OK
微信图片_20180801204443.png (42.04 KB, 下载次数: 1)
2018-8-1 20:58 上传
微信图片_20180801204443.png (77.77 KB, 下载次数: 2)
2018-8-1 20:57 上传
0x5调试android程序,以下两个条件中的一个就可以了:第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1
下面介绍配置AndroidManifest.xml中的debuggable。
回到AK(Anroid Killer),在需要调试APP的AndroidManifest.xml里面添加android:debuggable="true"(在application后面添加)
3211.png (2.53 KB, 下载次数: 2)
添加debug
2018-8-2 13:16 上传
然后回编译,拖入夜神模拟器上安装,安装完后点击模拟器上的设置--开发者选项--点击选择调试应用--选你需要调试应用
开发者模式.png (92.99 KB, 下载次数: 2)
2018-8-2 12:55 上传
0x6
然后进入夜神模拟器的文件夹,Shift+右击选中bin目录打开--在此处打开命令窗口--输入:nox_adb.exe connect 127.0.0.1:62001
微信图片_20180801204443.png (41.06 KB, 下载次数: 2)
2018-8-1 21:18 上传
0x6
然后回到Android Studio--点击图中的安卓机器人就会打开DDMS
微信图片_20180801204443.png (68.35 KB, 下载次数: 1)
2018-8-1 21:12 上传
微信图片_20180801204443.png (24.16 KB, 下载次数: 2)
2018-8-1 21:20 上传
0x7
在Android Studio输入以下命令以调试方式打开 PS: packageName和ActivityName是你要分析的APP包名和入口
[Asm] 纯文本查看 复制代码adb shell am start -D -n packageName/ActivityName
例如我的是这个:
微信1.png (9.36 KB, 下载次数: 2)
2018-8-1 21:29 上传
微信2.png (22.25 KB, 下载次数: 1)
2018-8-1 21:29 上传
所以我要在里面输入:
[Asm] 纯文本查看 复制代码adb shell am start -D -n soft.kinoko.SilentCamera/soft.kinoko.SilentCamera.app.CameraActivity
微信图片_20180801204443.png (86.39 KB, 下载次数: 2)
2018-8-1 21:31 上传
当出现这个就说明成功了。如果有其他的提示,就重新连接adb,然后再输入调试模式打开应用的命令
微信图片_20180801204443.png (11 KB, 下载次数: 1)
2018-8-1 21:32 上传
[
若失败请重复上面的步骤:
[Asm] 纯文本查看 复制代码adb connect 127.0.0.1:62001
adb shell am start -D -n packageName/ActivityName
0x8
最后在你需要调试的smail里面左击下断点--Shift+F9运行--F8单步,F7步入
QQ截图20180801214239.png (178.28 KB, 下载次数: 1)
2018-8-1 21:44 上传
结言:
终于完成了~如果有错误的地方,请各位指出,我会及时更近的~
Smailidea插件下载:https://bitbucket.org/JesusFreke/smali/downloads/
更正日志:
8.2日:
1.更正了开发者模式的设置,可以不用勾选“等待调试器”这个选项,因为“adb shell am start -D -n ”这个命令就是以调试模式打开应用
2.更正了adb连接失败时需要重新操作的步骤
3.更正了部分图片排序错误,我自己都乱套了。。
8.7日:
1.添加了调试程序的两个条件。(两个满足一个即可)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。