NSSCTF MOBILE [SWPU 2019]easyapp 详细题解

一. 前言

  1. 题目地址:[SWPU 2019]easyapp
  2. 大佬题解[SWPU 2019]easyapp pwjcw的WriteUp
    大佬的题解很简单,直接hook就可以看到返回值,但是我看了半天没看明白是用什么工具做的
    看其他题解是分析so文件得到答案,但是仍然没有搞清楚函数调用流程.
    后来我学习了一下《安卓Frida逆向与抓包实战 (陈佳林)》才知道是用frida和objection进行hook
    不过仍然没有成功复现,这里推测是由于安卓版本的问题,低版本(安卓7)成功复现,安卓9及以上均会失败

app目标安卓版本是安卓10(sdk29),但是我使用了雷电模拟器(安卓9 x86_64)和真机红米Note7(安卓10 arm64)均无法和大佬题解中一样成功hook Android 各版本对应的 SDK 版本
请添加图片描述

二. 安装安卓SDK

这一步主要是为了获取adb(安卓调试桥)工具
可以在这里直接下载SDK 平台工具版本说明
比较推荐的是安装AndroidStudio并将SDK设置到环境变量,这里不多赘述

三. 安装安卓模拟器(推荐夜神模拟器)

官网:夜神模拟器
注意: 可能出现adb无法找到安卓虚拟机的问题
在模拟器路径 \Nox\bin\ 下的nox_adb.exe和adb.exe先查看一下版本,要和安卓sdk的adb版本一致,不一致直接复制sdk的adb,修改名称并替换掉夜神模拟器中的nox_adb.exe和adb.exe
请添加图片描述
可以使用adb devices查看识别出的设备
如果打开了模拟器那么应该能正常识别到,
使用connect命令连接,之后就可以使用adb调试

查看安卓版本: adb shell getprop ro.build.version.release
查看sdk版本:adb shell getprop ro.build.version.sdk
请添加图片描述

四. 安装frida和objection

我的学习笔记略有介绍Android逆向学习之Frida逆向与抓包实战学习笔记(持续更新中)但不够详细,后续会继续补充完善
可以根据大佬文章安装配置frida和objectionfrida安装配置教程
建议使用anaconda管理python版本,给每个版本frida单独开一个环境便于操作多种设备
安装教程anaconda的安装和使用(管理python环境看这一篇就够了)

五. 解题过程

这题调用了Native层的Encrypt函数并进行比较,所以可以尝试hook Encrypt函数直接获取用于比较的字符串
在这里插入图片描述

  1. 启动frida server
adb shell
su
cd data/local/tmp					
./frida-server-12.8.0-android-x86	

启动之后命令行会卡在这里,注意不要关闭,另开一个cmd窗口进行操作
在这里插入图片描述
2. 切换到objection1.8.4环境(frida=12.8.0 frida-tools=5.4.0 python=3.7.16)

conda activate objection1.8.4
frida version

在这里插入图片描述
3. objection注入

objection -g com.example.ndktest2 explore

objection会自动搜寻该app并启动注入
在这里插入图片描述
4. hook函数

android hooking watch class_method com.example.ndktest2.MainActivity.Encrypt --dump-args --dump-backtrace --dump-return

在这里插入图片描述
hook之后在app输入框内随便输入点什么,点击登录,objection会给出hook到的返回值YouaretheB3ST
在这里插入图片描述
输入YouaretheB3ST即可成功登录
在这里插入图片描述

六. 总结

这题前前后后一个多月终于解决了,虽然是个简单题目但是为了得到答案并不简单
安卓逆向学习之路漫漫,还需多学习多总结多动手
强烈推荐学习陈佳林老师的《安卓Frida逆向与抓包实战》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OrientalGlass

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值