
但是只得到用户名 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也可以看)




















