首页 > 编程语言 >程序员攻占小猿口算,炸哭小学生!

程序员攻占小猿口算,炸哭小学生!

时间:2024-10-14 16:43:32浏览次数:5  
标签:题目 答题 炸哭 App 程序员 小猿口 PK 小学生

小学生万万没想到,做个加减乘除的口算练习题,都能被大学生、博士生、甚至是程序员大佬们暴打!

最近这款拥有 PK 功能的《小猿口算》App 火了,谁能想到,本来一个很简单的小学生答题 PK,竟然演变为了第四次忍界大战!

登上应用商店榜一

刚开始还是小学生友好 PK,后面突然涌入一波大学生来踢馆,被网友称为 “大学生炸鱼”;随着战况愈演愈烈,硕士生和博士生也加入了战场,直接把小学生学习软件玩成了电子竞技游戏,谁说大一就不是一年级了?这很符合当代大学生的精神状态。

小猿口算排行榜(博一也是一年级)

然而,突然一股神秘力量出现,是程序员带着科技加入战场! 自动答题一秒一道 ,让小学生彻底放弃,家长们也无可奈何,只能在 APP 下控诉严查外挂。

此时很多人还没有意识到,小学生口算 PK,已经演变为各大高校和程序员之间的算法学术交流竞赛!

各路大神连夜改进算法,排行榜上的数据也是越发离谱,甚至卷到了 0.1 秒一道题!

算法的演示效果,可以看我发的 B 站视频:https://www.bilibili.com/video/BV1xp2hYHEVn

接口也是口,算法也是算,这话没毛病。

这时,官方不得不出手来保护小学生了,战况演变为官方和广大程序员的博弈。短短几天,GitHub 上开源的口算脚本就有好几页,程序员大神们还找到了多种秒速答题的方案。

官方刚搞了加密,程序员网友马上就成功解密,以至于 网传 官方不得不高价招募反爬算法工程师,我建议直接把这些开源大佬招进去算了。

 

实现方法

事情经过就是这样,我相信朋友们也很好奇秒答题目背后的实现原理吧,这里我以 GitHub 排名最高的几个脚本项目为例,分享 4 种实现方法。当然,为了给小学生更好的学习体验,这里我就不演示具体的操作方法了,反正很快也会被官方打压下去。

 

方法 1、OCR 识别 + 模拟操作

首先使用模拟器在电脑上运行 App,运用 Python 读取界面上特定位置的题目,然后运用 OCR 识别技术将题目图片识别为文本并输入给算法程序来答题,最后利用 Python 的 pyautogui 库来模拟人工点击和输入答案。

这种方法比较好理解,应用范围也最广,但缺点是识别效果有限,如果题目复杂一些,准确度就不好保证了。

详见开源仓库:https://github.com/ChaosJulien/XiaoYuanKouSuan_Auto

 

方法 2、抓包获取题目和答案

通过 Python 脚本抓取 App 的网络请求包,从中获取题目和答案,然后通过 ADB(Android Debug Bridge)模拟滑动操作来自动填写答案。然而,随着官方升级接口并加密数据,这种方法已经失效。

详见开源仓库:https://github.com/cr4n5/XiaoYuanKouSuan

 

方法 3、抓包 + 修改答案

这个方法非常暴力!首先通过抓包工具拦截口算 App 获取题目数据和答案的网络请求,然后修改请求体中的答案全部为 “1”,这样就可以通过 ADB 模拟操作,每次都输入 1 就能快速完成答题。 根据测试可以达到接近 0 秒的答题时间!

但是这个方法只对练习场有效,估计是练习场的答题逻辑比较简单,且没有像 PK 场那样的复杂校验。

详见开源仓库:https://github.com/cr4n5/XiaoYuanKouSuan

 

方法 4、修改 PK 场的 JavaScript 文件

这种方法就更暴力了!在 PK 场模式下,修改 App 内部的 JavaScript 文件来更改答题逻辑。通过分析 JavaScript 响应中的 isRight 函数,找到用于判定答案正确与否的逻辑,然后将其替换为 true,强制所有答案都判定为正确,然后疯狂点点点就行了。

详见开源仓库:https://github.com/cr4n5/XiaoYuanKouSuan

能这么做是因为 App 在开发时采用了混合 App 架构,一些功能是使用 WebView 来加载网页内容的。而且由于 PK 场答题逻辑是在前端进行验证,而非所有请求都发送到服务器进行校验,才能通过直接修改前端 JS 文件绕过题目验证。

 

官方反制

官方为了保护小学生学习的体验,也是煞费苦心。

首先加强了用户身份验证和管理,防止大学生炸鱼小学生;并且为了照顾大学生朋友,还开了个 “巅峰对决” 模式,让俺们也可以同实力竞技 PK。

我建议再增加一个程序员模式,也给爱玩算法的程序员一个竞技机会。

其实从技术的角度,要打击上述的答题脚本,并不难。比如检测 App 运行环境,发现是模拟器就限制答题;通过改变题目的显示方式来对抗 OCR 识别;通过随机展示部分 UI, 让脚本无法轻易通过硬编码的坐标点击正确的答案;还可以通过分析用户的答题速度和操作模式来识别脚本,比如答题速度快于 0.1 秒的用户,显然已经超越了人类的极限。

0.0 秒的这位朋友,是不是有点过分(强大)了?

但最关键的一点是,目前 App 的判题逻辑是在前端负责处理的,意味着题目答案的验证可以在本地进行,而不必与服务器通信,这就给了攻击者修改前端文件的机会。虽然官方通过接口加密和行为分析等手段加强了防御,但治标不治本,还是将判题逻辑转移到服务端,会更可靠。

当然,业务流程改起来哪有那么快呢?

 


 

不过现在的局面也不错,大学生朋友快乐了,程序员玩爽了,口算 App 流量赢麻了,可谓是皆大欢喜!

等等,好像有哪里不对。。。别再欺负我们的小学生啦!

 

 

标签:题目,答题,炸哭,App,程序员,小猿口,PK,小学生
From: https://www.cnblogs.com/yupi/p/18464533

相关文章

  • 程序员开发利器:Your Commands网站上线
    程序员开发利器:YourCommands网站上线先上链接:https://www.ycmds.cc背景各种命令行工具是我们IT行业日常工作离不开的,但是对于命令行工具的使用有一个痛点:文档上每一个命令行参数写的清清楚楚,但是怎么组合起来用却搞不清楚。所以为了解决这个问题每个人都应该有一个记事本,记录......
  • 人工智能时代,程序员如何保持核心竞争力?
    面对AIGC大语言模型和AI辅助编程工具的兴起,程序员的工作方式确实正在经历深刻的变革。这种变革带来了对职业未来的多种思考和担忧,但同时也为程序员提供了新的机遇和发展方向。以下是对程序员应如何应对这一趋势的几点建议:保持学习与适应能力:持续学习新技术:随着技术的快速......
  • 程序员在AI时代扮演着多重角色:不仅是AI技术的创造者,也是使用者,更是AIGC的贡献者
    程序员在AI时代扮演着多重角色:不仅是AI技术的创造者,也是使用者,更是AIGC的贡献者引言大家好,我是猫头虎,在当下的AI时代,程序员不仅是AI技术的推动者,更在这个生态中扮演着多重角色:我们不仅是AI技术的创造者,也是使用者,更重要的是,我们通过持续的写作与分享,成为了AIGC的贡献者。......
  • FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
    ​喊了多年的互联网寒冬,今年的寒风格外凛冽,还在坚守安卓开发的朋友着实不容易。因为能转行的早就转了,能转岗的也早就转了,那么安卓程序员比较迷茫的就是,我该学什么安卓技术才好呢?还是直接扔了安卓再去搞别的技术吗?下面探讨下安卓程序员还能在哪些方面进阶修炼,主要有以下三个方向......
  • “一键解题,小猿口算神器:让数学练习与PK战无不利!“
    这段Python代码主要实现了以下几个功能:请求和响应处理:request函数用于处理HTTP请求。response函数用于处理HTTP响应,并根据URL中的关键字提取并处理响应数据。响应数据处理:response函数中根据不同的URL后缀来处理响应数据,并将JSON数据格式化输出。对于特定......
  • 代码与财富:程序员如何利用技术优势投资金融?
    最近A股很火热啊,根据最新统计,超过70%的程序员表示对金融投资感兴趣,但只有不到20%的人真正了解如何利用他们的技术优势。今天,我们将打破这一局面。在数字时代,程序员不仅是代码的创造者,更是财富的探索者。想象一下,当你的代码不仅仅是运行在服务器上,而是在金融市场上驰骋,那将是......
  • 用四个场景案例,分析使用大模型对程序员工作的帮助提升
    引言随着人工智能技术的不断发展,大模型在软件开发中的应用越来越广泛。这些大模型,如GPT、文心一言、讯飞星火、盘古大模型等,可以帮助程序员提高工作效率,加快开发速度,并提供更好的用户体验。本文将介绍我在实际工作中经常使用大模型的三个场景,展示如何在程序员的工作中使......
  • Python截图OCR+鼠标拖拽实现小猿口算比大小自动答题
    我的第一个python项目importtimeimportpyautoguifromPILimportImagefrompaddleocrimportPaddleOCRActOCR=PaddleOCR()whileTrue:#获取指定坐标的截图defcapture_screenshot_at_coordinates(x1,y1,x2,y2):#获取整个屏幕的截图......
  • 淘宝程序员没活硬整?在 Excel 和 VSCode 中购物!
    大家好,我是程序员鱼皮,最近某宝网站的改进,属实是有点“新”了。你敢相信这是一个购物网站么?你可以在Excel表格中挑选商品进行购物,还原度极高,这两个图表更是点睛之笔。哪个天才想出来的,把特么广告都整成了Excel图表。PS修图软件中也可以购物,不仔细看的话还真以为我在设计......
  • 通义灵码 AI 程序员来了!丨阿里云云原生 9 月产品月报
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......