周末福利 | 关于CTF中安卓题的快速做法

0x00前言

对于安卓题目的操作,网上对于此类的教程也不太详细,这里我们以jarvisoj-Findpass为例子介绍如何动态调试apk出flag,首先我们需要Android studio + smailidea + apktool box + jeb四样东西,smailidea是Android studio的一个插件,能够对smail文件操作从而动态调试apk,可以从https://bitbucket.org/JesusFreke/smali/downloads/下载

首先我们拿到apk,第一时间是打开模拟器安装,大概知道apk有什么功能(这里我用的逍遥安卓模拟器),


大概就是输入key然后验证key的过程,然后我们在正式开始动态调试需要配置我们的环境

0x01步骤

1.

到虚拟机的目录下找一个adb.exe的程序,


命令行模式下输入

adb.exe devices

就会返回你模拟器所在的端口

2.

打开Android studio然后安装smalidea-0.05插件,点击File->Settings->plugins->instal plugins from disk,选择下载的zip包就行,不要解压。安装完成后,AS提示重启生效,重启即可




3.

然后我们进入到Android sdk的目录==>platform tools,可以看到又有一个adb.exe


进入命令行,输入

adb.exe connect 127.0.0.1:21503 (跟第二步中获取到的模拟器的端口)


可以看到sdk现在已经连接到模拟器的端口了

4.然后我们需要获取到app的包名和Activity名,这里我们可以利用Android sdk/build-tools里的aapt.exe工具

进入到Android sdk/build-tools目录,启动命令行

aapt dump badging FindPass_200.apk(<apk文件路径>)



这里的apk包名和Activity名分别是 com.example.findpass 和 com.example.findpass.MainActivity

5.然后我们反编译我们的apk文件,这里用到的是apktool box工具,


用Android studio导入反编译后的文件,然后


设置为可以调试的

接下来再配置我们的debug键




6.

然后我们再Android studio的命令行下打命令


adb shell am start -D -n apk包名/.MainActivity



成功以后,模拟器会出现这样,等待我们debug


然后我们要看模拟器中启动app的进程号


adb shell ps



可以看到我们app的进程号是3269

接下来要让我们Android studio设置的remote端口连接到app的这个端口


adb forward tcp:8700 jdwp:3269


7.

接下来,我们随便设置一个断点,然后debug程序



在app下任意输入点确定


这题我们单步步过慢慢调试

最后发现flag

原文发布于微信公众号 - 安恒网络空间安全讲武堂(gh_fa1e45032807)

原文发表时间:2017-11-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

Redis实现消息队列 转

打开浏览器,输入地址,按下回车,打开了页面。于是一个HTTP请求(request)就由客户端发送到服务器,服务器处理请求,返回响应(response)内容。

32310
来自专栏月牙寂

k8s源码分析-----EndpointController

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

35650
来自专栏云计算教程系列

如何在Ubuntu 16.04上安装Node.js

Node.js是一个用于通用编程的JavaScript平台,允许用户快速构建网络应用程序。通过在前端和后端利用JavaScript,开发可以更加一致并在同一系统...

1.1K60
来自专栏章鱼的慢慢技术路

虚拟机的基本网络配置

32450
来自专栏前端儿

SeaJS 模块化加载框架使用

CommonJS,CMD,AMD等规范后文会提到,这里主要先了解如何在代码中使用。

13210
来自专栏Android随笔

ADB常用命令

11710
来自专栏LuckQI

Redis~事务与复制

16520
来自专栏云计算教程系列

如何在CentOS 7上配置Apache以使用自定义错误页面

Apache是世界上最受欢迎的Web服务器。它功能强大,功能丰富且灵活。在设计网页时,自定义用户看到的每条内容通常都很有帮助。包括他们请求不可用内容时的错误页面...

24300
来自专栏ionic3+

【技巧】ionic多环境配置

这种方式稍显麻烦,也容易误操作,而比较优雅的方式是通过配置文件和命令行参数结合来实现。

22020
来自专栏Java架构师历程

mac执行git命令出现xcrun: error: invalid active developer path解决方法

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools...

36520

扫码关注云+社区

领取腾讯云代金券