XYCTF2024 RE Trustme 复现

但是只得到用户名 admin

法一:猜Sql注入,直接万能密码

法二:正常逆向

jadx中的AndroidManifest.xml有奇怪之处

怀疑有加壳,进ProxyApplication看看

大量安卓一代壳的特征

Android第一代壳加固原理及实现 - 知乎

GitHub - Huyehan/First_generation_shell: Android第一代加壳技术

接下来脱壳,也有两种方法:

ⅰ. frida-dexdump(未成功)

Releases · frida/frida · GitHub

先把frida_server放到模拟器里

然后记得设定一下 frida-server-16.1.10-android-x86_64 的运行权限

./frida-server-16.1.10-android-x86_64

电脑端可以用frida-ps -U监控到进程

(模拟器不知道什么玄学问题,找不到 com.swdd.trustme

用这个找

报错:

Releases · frida/frida · GitHub

注意把这个取消勾选,不然找不到对应的路径

启动模拟器里的server,打开模拟器的app,运行dex-dump

识别不出来dex……不知道哪里有问题

ⅱ. 拖出解包文件(shell)

先找一下MainActivity的实际名字

找一下/data/data/com.swdd.trustme/app_payload_dex/shell.apk

pull出来

记得MT管理器改一下文件夹权限,不然弄不出来

出来之后jadx分析MainActivity,发现是通过访问数据库进行验证

所以就可以万能密码进行SQL注入,同第一种方法

当然也可以去找那个数据库

资源文件里可以找到,但是别在jadx里点,会卡死

原apk解压其实也可以得到

这个函数实际上进行了数据库解密

UByte.MAX_VALUE实际上就是0xFF

可以看到数据库文件里有大量的FF,实际上是空白的数据部分,异或0xFF之后就是0

ⅲ. MT直接找shell/数据库

MT里单击base.apk

这就是数据的位置

这里直接看到shell

数据库在这里

编辑文本方式打开直接看flag(在主机上用navicat也可以看)

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值