author: Dlive

date: 2016/10/6

0x00 前言

​ 之前有人问过smali的动态调试方法,其实网上已经有很多文章讲这些内容,但是为了方便大家学习,我还是写一下让大家少走点坑吧。

0x01 Smali的动态调试

​ 这里介绍一种比较方便的调试方法,这个调试方法不需要重打包apk,操作简单也比较常用。

1.调试环境

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

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

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

​ 我的调试环境是一台root过的且开启了调试功能的手机(ps.模拟器应该可以,我没试过)

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

2.调试步骤

​ 首先使用AndroidKiller反编译apk,反编译效果如下:

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

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

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

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

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

adb shell am start -D -n packageName/ActivityName

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

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

​ 在AS中设置断点

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

    你可以在调试器中看到变量的值

apk逆向 - smali动态调试的更多相关文章

  1. Android APK程序的smali动态调试

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/71250622 一.Apktool的下载和安装 Apktool是Android逆向分 ...

  2. [转]Android逆向之动态调试总结

    一.在SO中关键函数上下断点 刚学逆向调试时.大多都满足于在SO中某关键函数上下断点.然后通过操作应用程序,去触发这个断点,然后进行调试 详细的步骤可以参见非虫大大的<Android软件安全与逆 ...

  3. 【Android 逆向】动态调试AliCrackme_1

    1 试玩 apk # 安装APK到真机 adb install AliCrackme_1.apk 打开apk,投石问路,输入123试一下 2 将apk 拖入androidKiller,得到反编译的sm ...

  4. 利用IDA6.6进行apk dex代码动态调试

    网上公开IDA6.6已经有一段时间,这个版本有个好处就是可以动态调试java代码.正好现在需要动态调试,所以顺便练习一下. 根据android的官方文档,如果要调试一个apk里面的dex代码,必须满足 ...

  5. iOS逆向系列-动态调试

    Xcode调试App原理 Mac安装了Xcode Xcode的安装包中包含了debugserver 可执行类型的Mach-O文件,iPhone第一次连接Xcode调试会将Xcode中的debugser ...

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

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

  7. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

    Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...

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

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

  9. Android动态方式破解apk进阶篇(IDA调试so源码)

    一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...

随机推荐

  1. Android开发 Error:The number of method references in a .dex file cannot exceed 64K.

    在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把使用Java ...

  2. visual studio 2013 使用域名调试本地项目

    一.在localhost添加需要指定的域名,如:test.domain.com 二.以管理员身份启动VS,并打开项目 三.修改IIS Express的配置文件(一般位于:C:\Users\当前用户\D ...

  3. bzoj2702[SDOI2012]走迷宫

    题意:给你一个有向图,点数10000,边数1000000,SCC大小不超过100(按数据范围的写法只有第三部分数据满足这个条件,不过第二部分数据并没有出现大小大于100个点的SCC,我是用数组大小为1 ...

  4. 关于 m4 文本处理引擎

    使用 m4 开源项目还是挺多的,之前看到都有的怕怕的,选择自动略过.今天鼓起勇气来学习一波. 首先 m4 processor 是一个“宏定义”处理器,也就是说,他是一个纯粹的文本处理器,干些管理模板, ...

  5. 【Beta】Scrum09

    Info 考试周,暂停工作 时间:2016.12.26 21:35 时长:20min 地点:大运村1号公寓5楼楼道 类型:日常Scrum会议 NXT:2016.12.31 21:30 Task Rep ...

  6. Swift—调用系统相册和相机

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  7. 12月4日PHPCMS模板

    cms的样式有很多种,我们学习的是phpcms,这些cms都是大同小异,学会了一种就可以使用其它的cms. PHPCMS是一款网站管理软件.该软件采用模块化开发,支持多种分类方式,使用它可方便实现个性 ...

  8. webapi-创建项目

  9. 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux

    开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...

  10. yii2 解决POST 400错误

    第一种解决办法是关闭Csrf public function init(){ $this->enableCsrfValidation = false; } 第二种解决办法是在form表单中加入隐 ...