apk逆向 - smali动态调试

author: Dlivehtml

date: 2016/10/6shell

0x00 前言

​ 以前有人问过smali的动态调试方法,其实网上已经有不少文章讲这些内容,可是为了方便你们学习,我仍是写一下让你们少走点坑吧。ide

0x01 Smali的动态调试

​ 这里介绍一种比较方便的调试方法,这个调试方法不须要重打包apk,操做简单也比较经常使用。学习

1.调试环境

​ 推荐一下AndroidStudio(下文简称AS)这款IDE,既然Google已经有亲儿子AS,我以为Eclipse其实没有什么太大使用必要了。测试

​ 关于怎么安装AS我就不说了,网上随便都能搜到不少帖子。idea

​ 安装后AS后,想要动态调试Smali还须要安装一个插件Smalidea,能够在AS的settings->plugins里面安装。(插件下载连接:http://pan.baidu.com/s/1o8RL9jW插件

​ 个人调试环境是一台root过的且开启了调试功能的手机(ps.模拟器应该能够,我没试过)命令行

​ 如何开启调试功能,比较简单的方法是安装一个xposed插件:xinstaller(安装可参考:http://www.open-open.com/lib/view/open1426304176732.html3d

2.调试步骤

​ 首先使用AndroidKiller反编译apk,反编译效果以下:调试

0

​ 使用AS打开(File->Open)反编译结果所在文件夹(Project)

1

​ 在AS中配置远程调试,打开Run->Edit Configurations,添加远程调试 (点击以下图加号选择Remote)

3

​ 配置远程调试,Name随便填就好,host为localhost,端口8700

4

​ 打开monitor(安装SDK后在命令行下直接输入monitor便可),若是手机成功开启了调试功能,能够在monitor中看到正在运行的apk包名

5

​ 在手机上安装apk后以在terminal运行以下命令使apk以调试模式运行

adb shell am start -D -n packageName/ActivityName

​ 我测试所使用的apk包名为com.example.findpass,活动名为com.example.findpass.MainActivity(可简写为.MainActivity)

6

​ 运行上述命令以后能够看到手机屏幕上会弹出一个Waitting For Debugger的框,monitor中com.example.findpass进程前会有个红色的小虫子的图标

7

​ 在AS中设置断点

2

​ 而后选择Run/Debug,找到刚刚设置的调试选项进行调试便可

你能够在调试器中看到变量的值

相关文章
相关标签/搜索