美文网首页各种喜欢的
Android Studio动态调试Smail

Android Studio动态调试Smail

作者: dad9 | 来源:发表于2017-07-03 15:49 被阅读317次

    首发:Android Studio动态调试Smail

    0x00 前言
    DDCTF安卓题调试
    上一次是静态修改,后来我在想能不能动态调试得到Flag,于是就有了这篇文章。

    apk下载地址
    http://download.csdn.net/detail/dad9988/9887419

    0x01 准备工作

    下载、安装android studio

    https://dl.google.com/dl/android/studio/install/2.3.2.0/android-studio-bundle-162.3934792-windows.exe

    非常神奇,可以不翻(河蟹)墙下载,看来G(河蟹)F(河蟹)W对程序员还是很友善的。
    android studio集成了所需要的东西,以前eclipse需要另外装各种东西方便很多。

    IDM下载中... next 如果C盘空间不够可以修改下盘符 Setup Load... sdk包安装

    下载、安装模拟器

    推荐使用这款模拟器
    https://www.yeshen.com/

    模拟器安装就不赘述了。

    改之理

    很多apk解包使用apktools.jar会出现各种问题,直接用ide会方便很多。

    下载地址:
    http://www.52pojie.cn/thread-399571-1-1.html

    0x02 实战操作

    解包与导入工程到Android Studio

    首先使用apk改之理解包,直接用改之理打开apk包即可,改之理目录下就会有解包后的文件。


    work目录下是解包后的文件


    打开Android Studio选Import project


    选择刚才的解包目录


    直接next到底


    导入后会有一段时间的加载文件。


    安装smalidea

    File--->Settings--->Install plugin from disk


    下载smalidea-0.05.zip(这一步只需要做一次)
    https://bitbucket.org/JesusFreke/smali/downloads/

    选择刚下载的smalidea-0.05.zip


    导入需要重启一下。


    寻找命令行启动参数

    改之理解包目录下打开AndroidManifest.xml,记录activity层的android:name值。


    adb shell启动apk

    运行模拟器,在Android Studio中启动android device monitor


    一般会自动链接到ADM中,如果没有自动链接上去使用以下命令进行链接。

    我推荐的这个模拟器是链接62001其他模拟器自查
    adb connect 127.0.0.1:62001

    安装apk到模拟器(apk直接拉进去就自动安装了),并使用命令启动apk(adb如果未找到命令,请百度如何解决。)

    adb shell am start -D -n com.didictf.hellolibs/com.didictf.hellolibs.MainActivity

    运行命令后可通过adm看到有个红色的虫子图标,这个时候apk已经挂起等待调试了。


    在MainActivity下的OnCreate函数下断点

    点击如图的三角,选择Edit Configurations


    点击加号,选择Remote


    修改port为8700点击OK


    点击调试按钮挂载到模拟器中

    已经断在我们下的断点。

    0x03 调试

    DDCTF安卓题调试

    上一篇文章分析得出关键位置在MainActivity中的onClickTest函数,这次我们直接在这里下断点,动态调试。

    模拟器随便输入,点击test按钮,就会断在我们下的地方

    Paste_Image.png

    点击如图加号添加v0 ,v1,p0监视变量,并F8单步向下,走到58行,就会从so中返回flag到系统apk的v1变量中。


    对比下反编译的源码,更容易分析apk的工作流程。


    0x04 总结

    对于这个CTF的apk,动态调试会更加直观,下好断点,添加监视变量直接但步向下即可,比静态修改重新打包来的方便。

    转载请注明出处。

    相关文章

      网友评论

        本文标题:Android Studio动态调试Smail

        本文链接:https://www.haomeiwen.com/subject/lsubcxtx.html