Android Studio+ideasmali动态调试smali汇编

个人实战经验:

1.apktool_2.0.3.jar 之前的版本可以使用-d选项,重打包后,使用Android Studio调试,可以直接在变量窗口看到v0,v1,v2等,个人感觉可以替代Netbeans,Ecllipse.

2.apktool_2.0.3.jar之后的版本不可以使用-d选项.原生APK,不需要重打包,可以使用Android Studio调试,可以在监控窗口看到v0,v1,v2,p0等。

注意:smalidea-0.03插件在Android Studio 1.5系列,支持单步调试。Android Studio 2.0系列不可以单步调试,会发生错乱跳或者崩溃。


转:http://www.cnblogs.com/lanrenxinxin/p/4891424.html

0x00    前言

之前对于app反编译的smali汇编语言都是静态分析为主,加上一点ida6.6的动态调试,但是ida的调试smali真的像鸡肋一样,各种不爽,遇到混淆过的java代码就欲哭无泪了。后来知道IDEA用一款插件也可以实现smali的动态调试,但是只有14.1之后的版本才支持。idea是一款商业软件,懒得去找各种破解版,就想着用androidstudio来代替idea来达到动态调试的目的。

 

0x01    工具

①Android Studio 1.5Preview,不清除低版本的是否支持smali的调试

②apktool,尽量使用最新版的。

③ideasmali插件。下载地址

 

0x02     具体步骤

         安装ideasmali插件,File->Settings->Plugins,安装之前下载的ideasmali插件。

            Android Studio+ideasmali动态调试smali汇编_第1张图片  

    反编译apk 

    

    Android Studio+ideasmali动态调试smali汇编_第2张图片


             以调试状态启动app,并转发8700端口  [app_pid]

    

    Android Studio+ideasmali动态调试smali汇编_第3张图片

    

            

            记住这时候需要将DDMS关掉,不然会出现错误

            

    使用AS导入之前反编译的目录,这里选择debugsmali文件夹就可以了。

           Android Studio+ideasmali动态调试smali汇编_第4张图片

    然后选择Create project from existing sources,之后一直选择next。

           Android Studio+ideasmali动态调试smali汇编_第5张图片

    对之前反编译的debugsmali/src文件夹右键-->Make Directory As --->Source Root(smali的顶级目录)

        Android Studio+ideasmali动态调试smali汇编_第6张图片

         配置远程调试的选项,选择Run-->Edit Configurations:

            Android Studio+ideasmali动态调试smali汇编_第7张图片

          增加一个Remote调试的调试选项,端口选择:8700

           Android Studio+ideasmali动态调试smali汇编_第8张图片

       之后选择File-->Project Structure 配置JDK

           Android Studio+ideasmali动态调试smali汇编_第9张图片

            Android Studio+ideasmali动态调试smali汇编_第10张图片

        下好断点之后Run-->Debug'smali',这里的smali是我们之前配置好的调试选项。  

             Android Studio+ideasmali动态调试smali汇编_第11张图片

            运行起来之后就可以单步执行,查看寄存器的值,慢慢调试了。

             Android Studio+ideasmali动态调试smali汇编_第12张图片

 

你可能感兴趣的:(android,逆向)