前期准备

添加android:debuggable=”true” 属性

在AndroidManifest.xml application 标签中添加 android:debuggable=”true” 属性
添加方式有两种

  1. 使用apktool反编译apk,在AndroidManifest.xml中添加
  2. 使用 四哥的 AndroidManifest ARSC文件二进制修改工具 工具地址 使用教程
android:debuggable="true"

在入口处添加waitForDebugger代码进行调试等待

这里说的入口处,就是程序启动的地方,就是我们一般的入口Activity,查找这个Activity的话,方法太多了,比如我们这里直接从上面得到的AndroidManifest.xml中找到,因为入口Activity的action和category是固定的。

invoke-static {}, Landroid/os/Debug;->waitForDebugger()V

查看端口号

将已经重新打包的apk安装到手机上,打开Android Device Monitor (Tools -> Android ->Android Device Monitor),可以看到程序已经处于等待调试状态,记录下端口号 8700,下一步要使用。

android studio导入smail代码

1.导入smail文件 选择红框选择的类型

2.将smail文件夹设置Generated Source Root

设置端口号

  1. 在菜单栏选择 “Run”标签,并在下拉选项中选择 "Edit configuration"选项。在新页面选择 “+”,并选择Remote。

  2. 将前边在 Android Device Monitor 看到的端口号填到Port中。单击OK保存

开始调试

在插入 invoke-static {}, Landroid/os/Debug;->waitForDebugger()V 代码附件添加几个断点点击,同时打开待调试的app,点击android studio 的调试按钮。

调试过程中app可能会处在白屏状态。

参考资料

《智能硬件安全》
apktool动态破解apk https://blog.csdn.net/xiangzhihong8/article/details/51483224
Android逆向之路—IDEA动态调试smali语言 https://blog.csdn.net/hanchaohao2012/article/details/63253725

我是IT小王,如果喜欢我的文章,可以扫码关注我的微信公众号

更多相关文章

  1. Android(安卓)studio 3.1.4 无法获取pom文件
  2. 上官网学android之二(Building your First APP)
  3. checkbox 与 listview 等混用焦点问题
  4. android sdk+eclipse+adt 配置与开发
  5. 为Android内核添加新驱动,并添加到menuconfig菜单
  6. Android(安卓)UI布局中设置了fill_parenet仍然没有全屏的解决办
  7. android 电容屏(三):驱动调试之驱动程序分析篇
  8. UI控件--ImageView和ImageButton
  9. android背景选择器selector用法汇总

随机推荐

  1. 如何发布你的Android应用程序
  2. Android屏幕适配总结终极方案
  3. Android_TextView属性XML详解
  4. Android测试驱动开发实践1
  5. Android计算器——入门
  6. Android(安卓)ADT,SDK的安装,让人烦恼的在
  7. 我和我的Android
  8. Android(安卓)内存泄漏调试
  9. Android内核开发:理解和掌握repo工具
  10. Android开发已经没人要了么?