小蹭热度,本来不想写的,属实是在颤音上一天刷到三四十次刷腻了+小猿这边确实有API泄露,哈哈
. . . * . * ☄️. * . * . 🔆.* . * . 🧶 * . * . . .
大一也是一
最近互联网上最火的游戏可能就是上小猿口算跟小学生比做题速度啦——各位“大学牲”们在一个小小的做题APP上奋笔疾书,用“大一也是一”、“老弟还得练”等抽象ID吊打小学生们。
由于涌入APP的大学生们太多,“揍哭熊孩子”,一时之间小猿口算的应用商店评论区也被“受害”小学生和学生家长打了差评。
这游戏是不是有挂啊(你的怀疑是真的):
大学生打碎了我的口算梦(怜爱了):
我家子涵都哭了:
真的有挂吗?
那确实是有哒。
首先我们需要知道小猿口算的这个PK模式本质上是在做比大小题,也就是很简单的小学一二年级数学题,用户在收到题目后使用触屏手写写出大于号或小于号作为答案。
那么:
1. 题目为文字印刷体,且位置固定
2. 答案为手写,且位置固定
于是我们可以得出以下两种开挂方式:
开挂方式1:OCR
如果我们作为一个粗通编程的大学生,或者是天天翘课的大学生,那么能想到最容易的作弊方式就是OCR——图像识别技术。大学刷慕课的脚本里不少就用了这个技术,还有神铁道等游戏的日常周常脚本。
OCR的工作原理顾名思义,识别屏幕固定部分的文字(这里如果要探讨细节,最好是把两个比较数分别识别),然后用程序计算后在答题区域模拟书写即可。
再具体落实到脚本处,以比大小为例,写一写伪代码:
while(1){
pic_first=snapshoot(first_number_x,size_x,first_number_y,size_y)
pic_second=(second_number_x,size_x,second_number_y,size_y)
number_first=OCR(pic_first)
number_second=OCR(pic_second)
jumpif(number_first==null or number_second==null) #跳过条件
number_first>number_second?draw_greater_than():draw_less_than()
sleep() #平滑操作
}
func: draw_less_than(){...}
func: draw_greater_than(){...}
而截屏和模拟书写函数一般语言都有,现成不用训练的OCR库则有ddddocr等。
开挂方式2:抓流量
这也应该是本公众号所属领域的朋友们最先想到的解法。由于不想吃绿湿寒本公众号只放一张网上的截图:
给非专业的朋友们还有点进来的小朋友们解释一下它的原理:APP在PK过程中是一定会存在类似获取试题的网络通讯过程的,而小猿口算的通讯流量包是明文的且已经给出了答案,所以只需要通过提取接口进行爬取,并筛选出答案然后模拟书写即可~
信安要从娃娃抓起,现在放弃小猿口算改学信息安全还来得及^ ^。
小猿这边的预期应对方案
也没啥好说的,整点人机判断体力条反爬混淆就老实了,本质还是成本博弈。
我本质是不支持打小登的,不过人机互殴除外:
小彩蛋
要开挂的朋友们开快点吧,小猿已经开始找反爬工程师了,急急急急急:
. . . * . * 🌟 * . * . . .
由于很多人问我微信群的事情,所以我建了一个小微信群。现在可以在公众号菜单里选择合作交流->交流群获取交流群二维码,希望大家和谐交流,为更好更友善的行业环境贡献自己的力量。
如果喜欢我的文章,请点赞在看。网安技术文章、安卓逆向、渗透测试、吃瓜报道,尽在我的公众号:
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...