Android Studio动态调试Smail

首发: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需要另外装各种东西方便很多。

Android Studio动态调试Smail_第1张图片
IDM下载中...
Android Studio动态调试Smail_第2张图片
next
Android Studio动态调试Smail_第3张图片
如果C盘空间不够可以修改下盘符
Android Studio动态调试Smail_第4张图片
Setup Load...
Android Studio动态调试Smail_第5张图片
sdk包安装

下载、安装模拟器

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

模拟器安装就不赘述了。

改之理

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

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

0x02 实战操作

解包与导入工程到Android Studio

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


Android Studio动态调试Smail_第6张图片

work目录下是解包后的文件


Android Studio动态调试Smail_第7张图片

打开Android Studio选Import project


Android Studio动态调试Smail_第8张图片

选择刚才的解包目录


Android Studio动态调试Smail_第9张图片

直接next到底


Android Studio动态调试Smail_第10张图片
Android Studio动态调试Smail_第11张图片

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


Android Studio动态调试Smail_第12张图片

安装smalidea

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


Android Studio动态调试Smail_第13张图片

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

选择刚下载的smalidea-0.05.zip


Android Studio动态调试Smail_第14张图片

导入需要重启一下。


Android Studio动态调试Smail_第15张图片

寻找命令行启动参数

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


Android Studio动态调试Smail_第16张图片

adb shell启动apk

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


Android Studio动态调试Smail_第17张图片

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

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

Android Studio动态调试Smail_第18张图片

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

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

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


Android Studio动态调试Smail_第19张图片

在MainActivity下的OnCreate函数下断点

Android Studio动态调试Smail_第20张图片

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


Android Studio动态调试Smail_第21张图片

点击加号,选择Remote


Android Studio动态调试Smail_第22张图片

修改port为8700点击OK


Android Studio动态调试Smail_第23张图片

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

Android Studio动态调试Smail_第24张图片

已经断在我们下的断点。

Android Studio动态调试Smail_第25张图片

0x03 调试

DDCTF安卓题调试

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

Android Studio动态调试Smail_第26张图片

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

Android Studio动态调试Smail_第27张图片
Paste_Image.png

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


Android Studio动态调试Smail_第28张图片

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


Android Studio动态调试Smail_第29张图片

0x04 总结

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

转载请注明出处。

你可能感兴趣的:(Android Studio动态调试Smail)