一个基于chrome扩展的自动答题器此方宅

基于这篇入门教程和demo,我才能写出这款

基于chrome扩展的自动答题器。

2、开发背景

去年12月,某省委组织部举办了一系列学习竞赛活动,第一期时,参加人数寥寥,在第二期时,便通过党组织渠道要求所有党员保质保量的参加。

该活动可在专门的app上参加,也可通过官方网站参加。

既然是基于网页的并且支持chrome内核的考试系统,那自然能从前端入手进行操作。

3、主要功能迭代

2月21日,发布第一版答题器,主要功能有

3月4日,增加了了添加自定义试题及答案的功能。

3月20日,增加了全自动答题功能。

4月20日,增加了伪造回传鼠标点击坐标的功能。

5月14日,增加了在线更新的功能

至此,答题器的功能已基本成熟,最终答题器的界面如下:

4、结构拆解与代码分析

整个程序的存储由content部分来处理,存放于chrome.storage.local中,popup和inject在需要时从content更新数据,同时如果用户修改了设置也及时反映给content进行保存。

popup的js代码如下:(我觉得我备注的还可以)

content.js的代码:

在content和inject通讯中,我选择了在页面新建一个div元素,然后将通讯内容作为div元素的html。

优势是逻辑简单,可以直接使用jquery处理;

缺点是,破坏了页面原有结构,inject需要不停轮询该元素内容,通讯内容暴露,单项通讯

inject.js代码:

window.anslist为提前写入到程序中的基础题库,减少在线更新时数据通讯量;

因为只能从content接收指令,所以在inject中也保存了一份用户设置;

其中的ans_plus()函数则是整个答题器的核心,也是我最开始写的脚本部分。

逻辑很简单,

1遍历所有题目标签2{3找到题干;4在题库中匹配题干;5如果未匹配到6{7就用alert弹出提示8错题标记+19}10如果匹配到11{12获取所有选项并进行遍历13{14如果是单选并且选项等于该题目的答案15{16选中该选项;17continu;18}19如果是多选并且选项在该题目的答案中20{21选中该选项;22}23}24}25}26如果没有错误标记则自动交卷;以上,就是整个答题器中最重要的popup,content和inject中的js代码。

5、几个功能迭代。

从4月份期,为增加作弊难度,考试系统在每天都会增加几道新题。根据观察,是20道题中,在基础题库中抽取18道,在当日新题中抽取2道。

当时的对策是每天更新一次答题器,为了便于答题,答题器的所有用户每天都需要重新下载更新答题器。(群成员数暴涨)

5月13日,我重写了自定义新题的功能,可以批量添加多个新题。这样每天我只需要更新新题字符串,答题器用户将新题字符串导入答题器即可。

5月14日,在重新学了了小茗同学教程之后,实现了在线更新的功能。自定义新题字符串仅仅使用了两天便被淘汰。

服务器端代码:

1$_v)19//echo'{"date_varsion":"'.$_v.'","update":"'.$date.'"}';20{21echo'//'.$_v;22echo$date;2324}25>服务器端代码很简单,答题器将当前版本号发送至服务器,如果版本号一致则服务器返回空白页,如果不一致则返回新题数据。

数据的第一行是当前数据版本,后面则是题目/答案。依托于重写的自定义新题功能,自动更新非常顺利的实现了。

4月20日,经确认,考试系统加入了防作弊功能,原理是当鼠标点击“上一题”“下一题”或者题号时执行函数ClickButton,保存当前鼠标坐标,在交卷时同时传给服务器。

一开始我考虑的伪造回传数据,但数据经过了一点简单的计算,实在懒得跟他算计,

然后考虑的伪造下一题按钮的点击事件,但通过脚本触发的点击事件没有鼠标坐标信息,

最后忽然发现,我只要每次题目切换时,伪造一个事件(Event)作为参数传给反作弊的模块即可

varposx=Math.floor(800+Math.random()*200);

varposy=Math.floor(400+Math.random()*140);

ClickButton({'button':0,'clientX':Math.floor(posx+Math.random()*50),'clientY':Math.floor(posy+Math.random()*15)});6、写在最后

这个答题器功能实用,逻辑清晰,难度不算大,非常适合chrome扩展的学习和练手。

THE END
1.自动答题器手机版自动答题器辅助软件大全自动答题器软件有哪些?今天给大家推荐几款超级好用的自动答题辅助软件,这类软件是专门为各位知识爱好者量身打造的知识竞答答题赚钱神器,用户能够每天在这里进行答题,去获得瓜分奖金的机会,这些软件能够帮助大家快速的进行答题,让大家轻松答题,瓜分大奖,是大家知识竞http://m.downcc.com/k/zddtq
2.python用题库自动答题器用题库自动答题Ⅲ 按键精灵做自动答题脚本思路和方法,有题库!! ORC插件文字识别,题库查题找答案,答题界面正确答案匹配,选择答案 Ⅳ 有题库和答案怎么在手机上实现在考试星自动答题 哈哈,不会是作弊吧 Ⅳ 答题软件导入题库自动答题 您好!您有题库的话,建议使用试题通!试题通软件挺好的,支持导入,也支持多模式答题!有点象https://blog.csdn.net/weixin_42356137/article/details/114400813
3.wps制作试卷自动判断对错怎样用wps出试卷上图是一个高等数学Word试卷,包含众多公式,小糖图文题库软件是一款手机App,为了适应手机屏幕,将试卷设为B,纸张,下面看下试卷导入题库后的样子:可以看到,软件中的题目版面与Word相比,没有任何变化!而且也能正确的识别填空题,选择题。选择题软件可以判断对错,那么填空题是由人判断答对了。试题录入功能。试题录入是建http://www.zizhiok.com/shijuan/u709.html
4.易语言简易答题器源码题库导入本地数据库易源码转载分享 虚拟商城 更多 幸运抽奖 排行榜单 签到中心 社区监狱 直播中心 易源码关注关注:73内容:2246 查看作者 打赏作者 当前位置:七七博客>易源码>正文 6 发帖狂魔 VIP2 把Excel表格导入本地数据库,对数据库内容进行搜索 Excel表格A列为题目,B列为答案导入即可 https://www.qiqiboke.com/12865.html
5.微信小程序定制开发微信小程序暗恋测试题 微信小程序抢号神器软件 微信免费初中学习小程序 微信小程序登陆信息提示 微信小微信小程序服务器流量 电脑端微信怎么进小程序 微信小程序怎么自动铺货 微信聊天记录加小程序 武汉查微信小程序识别教程图片 微信视频号链接到小程序 周宁县微信小程序建设 小程序有微信吗安全吗 微信小https://www.seohnzz.com/
6.云班课自动答题油猴插件免费自动化编辑器 答题插件 油猴脚本实战教程:模拟鼠标点击,自动点击某个地方,自动答题,类似按键精灵 大学牲de自用脚本 能无限搜题的工具,就没有搜不到的题目 解放双手任意软件快速答题做题教程及操作指南 杀乱云班课 云班课使用方法 wk001-超强刷网课视频操作 & 辅助油猴插件html5增强版https://xbeibeix.com/video/BV1Fy4y1u7TE
7.神武手游御前科举答题器答案汇总神武手游的答题器来啦,神武手游答题最新版答案汇总,有的人对答题感兴趣,有的人觉得很无聊,觉得无聊的就不用这么做了,很浪费时间的,如果能做到我所说的,智勇闯关基本都在15分钟以内(老手是10分钟以内),科举在8分30秒以内(老手是7分钟左右)加油吧! 神武的答案,可以使用 ALT+F 对题目进行搜索,因为神武的手机版和https://www.juxia.com/sjwy/gonglue-188-1642.html
8.绵阳市第三人民医院采购答题器市场调研及询价公告(5)、电源适配器1个、分屏充电线8个、抢答按钮充电线8个等配套辅材。 (6)、答题软件1套:支持团队分组,个人计分,团队计分,翻页特效;支持投影大屏独立显示选手分数计时;支持快速答题,简单题,判断题,线索题,特效题,视频播放题,抢答题等功能;支持一键导入题库(word/txt等); https://sc.chinamae.com/news/7b66887e1c3dd60268a0a85b2d326879.html