这是我最近一个很有意思的尝试。
考研期间为了限制自己,我拜托别人帮我设置了许多app的青少年模式,BiliBili就是其中一个,在考研结束后,我突然想着能不能在不询问密码的前提下解开这个青少年模式?
普遍存在的问题
我在网上搜到的一篇调查报告指出,现存的大多数青少年模式都形同虚设,要么是可以重新安装初始化app,要么是不设置解秘次数,可以暴力破解。这也就是我的主要思路。
重装
我尝试重新安装bilibili,或者再别人的手机上登录账号,然后得出结论,bilibili的青少年模式是跟着账号走的,除非更换账号,不然还是不行。
暴力破解
所以自然而然采取第二种策略,暴力破解。
手动输入的话会累死个人,于是我在尝试有没有什么自动化的方法。
通过adb可以模拟点击,然后获得了0-9的输入坐标后,就可以写出这么一段shell脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #!/bin/bash
press(){ case $1 in 0) adb shell input tap 500 2200 ;; 1) adb shell input tap 200 1500 ;; 2) adb shell input tap 500 1500 ;; 3) adb shell input tap 800 1500 ;; 4) adb shell input tap 200 1700 ;; 5) adb shell input tap 500 1700 ;; 6) adb shell input tap 800 1700 ;; 7) adb shell input tap 200 2000 ;; 8) adb shell input tap 500 2000 ;; 9) adb shell input tap 800 2000 ;; esac }
pass=0000
until [ ! $pass -lt 10000 ] do press `expr $pass / 1000 % 10` press `expr $pass / 100 % 10` press `expr $pass / 10 % 10` press `expr $pass / 1 % 10` adb shell input tap 520 830 pass=`expr $pass + 1` done
|
嘛,然后就可以用了。