AndroidStudio+ideasmali动态调试smali汇编
2015-10-19 17:22
661 查看
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插件。
反编译apk
以调试状态启动app,并转发8700端口 [app_pid]
记住这时候需要将DDMS关掉,不然会出现错误
使用AS导入之前反编译的目录,这里选择debugsmali文件夹就可以了。
然后选择Create project from existing sources,之后一直选择next。
对之前反编译的debugsmali/src文件夹右键-->Make Directory As --->Source Root
配置远程调试的选项,选择Run-->Edit Configurations:
增加一个Remote调试的调试选项,端口选择:8700
之后选择File-->Project Structure 配置JDK
下好断点之后Run-->Debug'smali',这里的smali是我们之前配置好的调试选项。
运行起来之后就可以单步执行,查看寄存器的值,慢慢调试了。
之前对于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插件。
反编译apk
以调试状态启动app,并转发8700端口 [app_pid]
记住这时候需要将DDMS关掉,不然会出现错误
使用AS导入之前反编译的目录,这里选择debugsmali文件夹就可以了。
然后选择Create project from existing sources,之后一直选择next。
对之前反编译的debugsmali/src文件夹右键-->Make Directory As --->Source Root
配置远程调试的选项,选择Run-->Edit Configurations:
增加一个Remote调试的调试选项,端口选择:8700
之后选择File-->Project Structure 配置JDK
下好断点之后Run-->Debug'smali',这里的smali是我们之前配置好的调试选项。
运行起来之后就可以单步执行,查看寄存器的值,慢慢调试了。
相关文章推荐
- android vlc compile error fix
- Android设备root及xposed&Privacy的安装
- Android 滚动条属性
- Android编译过程详解(一)
- Android 简单图片浏览器 ImageView
- 模拟Android多点触控
- android 控制POS机图文打印(二)
- 修改Android OS操作系统的代码,自动请求AGPS
- android js交互备忘,webview配置
- android java epson串口打印机
- android 仿淘宝京东等viewpager自动滚动
- android studio 启动卡死,创建项目卡死
- Android 框架层录音音量调节功能引入
- Android内存优化:Handler
- 关于android中activity的四种启动模式
- Android笔记:Android应用的基本组件
- android:intent flags
- Android Intent action 的作用
- android 的Activity和Service之间的通信
- [原创]Android init.rc文件解析过程详解(二)