下载链接:下载
参考链接:攻防世界-Mobile-基础android (Misc经验解法)_攻防世界基础android_Q_yt的博客-CSDN博客
方法一:
这是个偏向Misc的解题思路,下载完是个apk文件,载入010 Editor看一下,
发现是50 4B开头,而50 4B正是zip压缩包的开头编码,所以把apk改为zip然后解压。发现里面的assets文件夹下也是个zip压缩包,载入010看一看
FF D8是jpg文件的编码开头,所以把这个zip改为jpg。然后打开可获得flag
方法二
逆向思路:把apk文件载入jadx进入AndroidManifest.xml。
可以知道入口点是MainActivity
并且注册了一个广播
进入入口点:
点击按钮把输入内容送到str并且进行‘check.checkPassword(str)’操作,跟进Check类:
发现是对输入的内容进行变化操作然后最后等于'0',所以写一个简单脚本可以求str
key=list('000000000000')
flag=''
for i in range(12):
flag+=chr(255-i-100-48)
print(flag)
# kjihgfedcba`
输入正确的str后进入MainActivity2,跟进
通过进一步查看manifest.xml知道触发该广播内容是"android.is.very.fun",而GetAndChange是广播接收器,跟进GetAndChange
广播接收器接收到广播后启动NextContent,跟进:
这里就是NextContent主要操作,把time_2.zip变为jpg图片形式(和第一种方法对应了)。
所以就可以求flag。
输入第一个密码
触发广播
获得flag