zoukankan      html  css  js  c++  java
  • apk逆向

    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,反编译效果如下:

    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,找到刚刚设置的调试选项进行调试即可

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

    注:本博客文章转载需带上原文链接
  • 相关阅读:
    jQuery的简单实用的25个知识点
    toDoList案例
    缓动动画函数的封装
    轮播图的设置:
    Django学习:cookie和session
    Django学习:ORM
    Django学习:中间件
    Django学习:url路由系统
    Django学习:模板继承和配置静态文件
    Django学习:模板语法
  • 原文地址:https://www.cnblogs.com/dliv3/p/5935957.html
Copyright © 2011-2022 走看看