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