1.简介

smalidea是一个IntelliJ IDEA/Android Studio smali语言插件,可实现动态调试smali代码。下载地址为:https://github.com/JesusFreke/smali/wiki/smalidea。Android Studio的安装,就是傻瓜式的安装,一路next下去。接下来笔者介绍一下笔者的软件环境:jdk 1.8,android studio 2.3,smalidea 0.0.5,测试的app是笔者写的一个demo.

2.动态调试Smali需要的软件

调试的过程中需要准备的软件有android studio、smalidea、baksmali。经过笔者的测试,发现不同版本的软件搭配,会得出许多问题。这里笔者测试出,在笔者的软件环境下情况正常,Android Studio动态调试AKP需要的软件集合

3.动态调试smali

3.1 生成Smali文件

将需要编译的软件放到apktool目录下面。

然后执行这个命令:

java -jar baksmali-2.0.3.jar test.apk -o ./projects/test/src

就可以得到projects这个文件夹。在执行上面这行代码时,可能会遇到“com.beust.jcommander.MissingCommandException: Expected a command”的异常信息。这时候可以运行

java -jar baksmali-2.0.3.jar -?

来查看帮助信息。通过报出的异常信息,和观察的帮助信息后,知道应该添加disassemble命令参数:

java -jar baksmali-2.0.3.jar disassemble test.apk -o ./projects/test/src

3.2 导入Smali文件

打开visual studio软件,File -> New -> Import Project...

然后选中上面解压出来的test文件夹

接下来,我们就可以在project中看到自己的项目了

3.3 安装Smalidea插件

现在还没有smali插件,所以不会进行语法检查。

File -> Settings...然后选中Plugins,选中Install plugin from disk... ,然后找到解压出来的smalidea 0.0.5.zip文件,点击确认重启,smalidea插件就安装成功了。

这时候,笔者建议点开查看打开smali文件看看,如果在Log台中,出现错误信息,那么表明你的Smalidea版本不对,不能正常解析。

3.4 设置远程监听

点击 Run -> Edit Configurations...  然后点击+号,选择remote。

然后再设置端口为8700

3.5 查看DDMS

在sdk tools中点击 monitor.bat ,就会看见DDMS,打开客户端的软件端口的信息就会出现,然后选中端口。

3.6 开始调试

在打好断点后,点击调试按钮。

然后就会断点处出现调试界面,

【Smali】Smali文件的动态调试的更多相关文章

  1. IDA动态调试Android的DEX文件

    Android程序的dex文件的动态调试确实是个大问题,网上也有一些教程但是不是特别的详细,今天用到了IDA动态调试Android的DEX文件,特此记录一下. IDA 6.6新添加了对dex文件的调试 ...

  2. Android动态调试so库JNI_Onload函数-----基于IDA实现

    之前看过吾爱破解论坛一个关于Android'逆向动态调试的经验总结帖,那个帖子写的很好,对Android的脱壳和破解很有帮助,之前我们老师在上课的时候也讲过集中调试的方法,但是现在不太实用.对吾爱破解 ...

  3. Netbeans 6.8 + apktool_2.0.0b9 动态调试smali文件

    前言 很早就知道用Netbeans能够单步调试smali,一直拖到现在才真正的自己实现了一次~ 下面是详细步骤! 0×1 环境及工具 a.apktool_2.0.0b9 下载地址:http://con ...

  4. apk逆向 - smali动态调试

    author: Dlive date: 2016/10/6 0x00 前言 ​ 之前有人问过smali的动态调试方法,其实网上已经有很多文章讲这些内容,但是为了方便大家学习,我还是写一下让大家少走点坑 ...

  5. 安卓动态调试七种武器之长生剑 - Smali Instrumentation

    安卓动态调试七种武器之长生剑 - Smali Instrumentation 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是 ...

  6. 使用IDEA动态调试smali代码

    原创,转载请注明出处. 一般java ide(如eclipse.idea)都可用来进行smali的动态调试,这里选择IDEA. 第1步:使用apktool反编译apk java -jar apktoo ...

  7. AndroidStudio+ideasmali动态调试smali汇编

    0x00    前言 之前对于app反编译的smali汇编语言都是静态分析为主,加上一点ida6.6的动态调试,但是ida的调试smali真的像鸡肋一样,各种不爽,遇到混淆过的java代码就欲哭无泪了 ...

  8. Android Studio动态调试smali代码

    工具: Android Studio版本: 3.0.1 smalidea插件: https://github.com/JesusFreke/smali/wiki/smalidea. 反编译工具:本节先 ...

  9. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

随机推荐

  1. linux 添加elasticsearch 开机重启(自启动)

    在 /etc/init.d 文件夹下建立脚本 eg:data.sh #chkconfig: 2345 80 90#description:auto_run#!bin/bashexport JAVA_H ...

  2. PyCharm安装第三方库如Requests

    转载: https://blog.csdn.net/fx677588/article/details/56830929 PyCharm安装第三方库是十分方便的,无需pip或其他工具,平台就自带了这个功 ...

  3. PHP的异常以及异常存在的意义

    php的try catch与其它语言的try catch相比有许多不同,而且用起来相对比较不爽. php中,如果你制作的站点相对较大,同时模块化,并且在错误处理机制上有一套自己的处理机制,可以尝试使用 ...

  4. android中RecyclerView控件的列表项横向排列

    本文是在上一篇文章的基础上做的修改:android中RecyclerView控件的使用 1.修改列表项news_item.xml:我这里是把新闻标题挪到了新闻图片的下面显示 <?xml vers ...

  5. thinkphp3错误:syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING)

    syntax error, unexpected 'list' (T_LIST), expecting identifier (T_STRING) 出现这个错误的原因是,list是php的一个函数,系 ...

  6. 微信小程序 - 弹出层组件

    需要的可以下载示例:maskalert

  7. 微信小程序 - 分包加载(预下载)

    开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度.对于独立分包,也可以预下载主包. 配置方法 预下载分包行为在进入某个页面时触发,通过在 a ...

  8. python binascii模块详解

    ['Error', 'Incomplete', 'b2a_hex', 'hexlify' #Hexadecimal representation of binary data. 字符串转16进制'a2 ...

  9. 苹果电脑Macbook怎么编辑hosts文件的方法

        苹果电脑Macbook怎么编辑hosts文件的方法 https://jingyan.baidu.com/article/fec4bce2690417f2618d8b07.html     文章 ...

  10. CentOS7 vsftp使用ftp客户端登录时不同的用户进入到不同的文件夹方法

    anonymous_enable=NO local_enable=YES write_enable=YES local_umask=777 #anon_upload_enable=YES #anon_ ...