[网鼎杯 2020 青龙组]bang 复现--frida-dexdump安卓脱壳工具的使用

一.前言

在NSSCTF练习安卓逆向,第一次遇到安卓脱壳题
大佬的题解只有一句话"frida-dexdump一把嗦"
听起来容易做起来难,还遇到了安卓虚拟机的玄学bug,折磨了我很久,好在最终使用真机成功dump并得到flag
题目来源:[网鼎杯 2020 青龙组]bang
如果直接用jadx打开会发现点击MainActivity没有反应

二.准备

1.安装AndroidStudio并将SDK目录添加至环境变量

这个操作主要是为了方便后续使用adb调试手机

2. 一台root的手机或者安卓虚拟机

建议用真机,虚拟机有可能会导致奇怪的bug
在这里插入图片描述

3. 安装firda-dexdump

安装frida工具
pip install frida
pip install frida-tools
pip install frida-dexdump

4. 下载firda-server并推送至手机运行

1. 查看手机架构

adb shell getprop ro.product.cpu.abi
在这里插入图片描述

2. 下载frida-server

项目地址:frida
根据手机或虚拟机架构下载对应安装包并解压
在这里插入图片描述

3. 推送frida-server至手机

adb push frida-server-16.0.19-android-arm64 /data/local/tmp

4. 运行frida-server

adb shell		//进入shell
su				//获取root权限
cd /data/local/tmp	//进入tmp目录
chmod 777 frida-server-16.0.19-android-arm64 //给予可执行权限
./frida-server-16.0.19-android-arm64 	//运行程序

注意这里运行之后并不会有回显,光标会卡在那
在这里插入图片描述

5. 使用frida-dexdump脱壳

使用frida-ps -Ua命令查看手机正在运行的程序以及PID和包名等信息

在这里插入图片描述

或者使用adb shell pm list package显示包名

在这里插入图片描述

脱壳命令

指定App的应用名称:frida-dexdump -U -n how_debug
指定App的应用进程ID:frida-dexdump -U -p 29575
指定App的应用包名:frida-dexdump -U -f com.example.how_debug

前两种方式需要提前运行程序,第三种不需要,frida-dexdump会自动运行程序,不过前提是知道包名(可以通过一些其他工具查看apk的包名)
frida-dexdump -U -f com.example.how_debug

在这里插入图片描述

然后运行该命令的文件夹便会输出脱壳后的文件

在这里插入图片描述

选中这些文件拖到jadx中打开

在这里插入图片描述

然后就可以找到MainActivity了

在这里插入图片描述

这题的逻辑也并不复杂,分别输入用户名:admin密码:pass71487
成功登录后会输出flag{borring_things}

请添加图片描述

三.参考文章

  1. Android Spider Frida-Dexdump 脱壳工具下载使用以及相关技术介绍
  2. adb shell 查看CPU架构
  3. 每天一个adb命令:pm 命令详解
  4. frida-dexdump 真机&模拟器 一键安装+执行

猜你喜欢

转载自blog.csdn.net/OrientalGlass/article/details/130714750