Android Studio 3.6 调试 smali的全过程

 更新时间:2020年02月26日 10:24:18   作者:jha334201553  
这篇文章主要介绍了Android Studio 3.6 调试 smali, 目前最新版的 Android Studio 利用附加功能调试 smali 非常方便,具体操作步骤跟随小编一起看看吧

Android Studio 3.6 正式版终于发布了,快来围观,点击查看。

 简介

Smali是用于Dalvik(Android虚拟机)的反汇编程序实现,汇编工具(将Smali代码汇编为dex文件)为smali.jar,与之对应的baksmali.jar则是反汇编程序(下载地址),官方所说的基于Jasmin/dedexer语法,实际根不知道是什么鬼……

Smali支持注解、调试信息、行数信息等基本Java的基本特性,可以说是很接近Java编译在JVM上的中间语言了,一般用来做Android程序的逆向工程,还可以。。搞搞小名堂

个人认为Smali只是用于做反汇编的一种语言实现,如果可以,自己也能定义一套这样的语言,实现反汇编的效果

好了,下面看下正文。

       以前在Android Studio中调试 smali 还是非常麻烦的时候,配置不好就是

Error running Smali: Unable to open debugger port (localhost:8700): java.io.IOException "handshake failed - connection prematurally closed

       目前最新版的 Android Studio 利用附加功能调试 smali 非常方便 ,操作步骤如下:

文中会用到工具及下载地址:

        ①、apktool.jar(目前最新版 v2.4.1),用于反编译smali,

下载地址:    https://ibotpeaches.github.io/Apktool/ 

        ②、Android Studio (目前最新版本 3.6)用于Android开发调试IDE,

下载地址: https://developer.android.google.cn/studio/

        ③、smalidea-0.05.zip (目前最新版 0.05),AS 插件,用来给smali下断点,单步调试,

下载地址      https://bitbucket.org/JesusFreke/smali/downloads/

1.  先配置好Android Studio开发环境,这步就略去2. Android Studio中安装 smalidea 插件,先从官网下载 smalidea zip包,然后在 Android 中依次选择:

    File   -->  Setting   将会弹出设置对话框

Android设置

然后在设置对话框依次选择:  Plugins   -->  <设置图标>  --> Install Plugin from Disk...

安装插件

在弹出选择对话框中,找到下载好的 smalidea 压缩包,选择ok即可

选择zip

至此,插件安装就完成了,关闭 Android Studio

3. 用 apktool 反编译 apk 

    使用命令 : java.exe -jar  apktool.jar d -f  <xxxx.apk>  -o <xxxx目录>

    也可以直接使用 ApkTool 集成环境(如果反编译失败可以替换其中的 apktool.jar 至最新版):

在 反编译出来的 AndroidManifest.xml 的 application 节点添加 android:debuggable="true"

然后在 主 Activity 中加入  invoke-static {},Landroid/os/Debug;->waitForDebugger()V

重建且签名 apk 

安装 重建后的 apk 到手机 

(这步如果重新打包失败,可以安装原始包,把手机 root 配置/default.prop 的 ro.debuggable=1 开启全局调试。

然后用命令启动 Activiry : adb shell am start -D -n package属性的值/android:name属性的值  )

4. 将 反编译工程导入到 Android Studio

 

默认选择 Create project from existing sources ,一路 next ,最后点击 Finish 即可

用 Project 视图,在项目目录右键  --> Mark Directory as ... --> Sources root

5. 展开 smali 目录选择刚才添加 waitForDebugger 代码的 smali 文件下一行下断点

6. 运行手机上安装的apk(apk会假死停在 waitForDebugger 代码处,等待调试器)。

7.在Android Studio选择附加

此时,已经 Attach 到进程中,可以快乐的调试了

总结

到此这篇关于Android Studio 3.6 调试 smali的全过程的文章就介绍到这了,更多相关Android Studio 3.6 调试 smali内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android实现知乎选项卡动态隐藏效果实例

    Android实现知乎选项卡动态隐藏效果实例

    选项卡相信对大家来说应该不陌生,最近发现知乎选项卡的动态隐藏效果不错,下面这篇文章主要给大家介绍了关于Android实现知乎选项卡动态隐藏效果的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-02-02
  • Android中TextView实现部分文字可点击跳转

    Android中TextView实现部分文字可点击跳转

    这篇文章主要为大家详细介绍了Android中TextView实现部分文字可点击跳转的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 一篇文章弄懂Android自定义viewgroup的相关难点

    一篇文章弄懂Android自定义viewgroup的相关难点

    这篇文章主要给大家介绍了关于如何通过一篇文章弄懂Android中自定义viewgroup的一些相关难点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • Android自定义view实现TextView方形输入框

    Android自定义view实现TextView方形输入框

    这篇文章主要为大家详细介绍了Android自定义view实现TextView方形输入框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Android中使用pull解析器操作xml文件的解决办法

    Android中使用pull解析器操作xml文件的解决办法

    本篇文章介绍了,在Android中使用pull解析器操作xml文件的解决办法。需要的朋友参考下
    2013-04-04
  • Android应用程序模型之应用程序,任务,进程,线程分析

    Android应用程序模型之应用程序,任务,进程,线程分析

    这篇文章主要介绍了Android应用程序模型之应用程序,任务,进程,线程分析,较为详细的分析了Android应用程序模型中关于任务、进程、线程的相关概念及注意事项,需要的朋友可以参考下
    2016-01-01
  • Android手机开发设计之记事本功能

    Android手机开发设计之记事本功能

    这篇文章主要为大家详细介绍了Android手机开发设计之记事本功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Android实现将一个Activity设置成窗口样式的方法

    Android实现将一个Activity设置成窗口样式的方法

    这篇文章主要介绍了Android实现将一个Activity设置成窗口样式的方法,涉及Android的窗口样式设置与布局技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-02-02
  • Android基于TextView实现的跑马灯效果实例

    Android基于TextView实现的跑马灯效果实例

    这篇文章主要介绍了Android基于TextView实现的跑马灯效果,以完整实例形式分析了Android使用TextView通过属性设置及功能代码实现跑马灯效果的相关技巧,需要的朋友可以参考下
    2016-02-02
  • Android JobScheduler详细介绍

    Android JobScheduler详细介绍

    JobScheduler是Android 5.0引入的系统服务,它可以根据网络状态、充电状态、电量和存储状况等来触发相应的JobService执行任务,它支持多条件组合、持久性任务,以及在API 21以上版本的Android系统中使用,对Android JobScheduler相关知识感兴趣的朋友跟随小编一起看看吧
    2024-09-09

最新评论