关于答题外挂的一些思考,和告诉你答题助手是如何让你瓜分百万的

原创 收藏 评论
举报 2018-02-04

好久没有更博了,2018年第一篇。我们来聊聊答题。


2018年一开年,最火的莫过于就是答题和区块链了。

而今天,我想和大家来一起说说前者。


 伴随着各种答题的火热,随之各种【外挂】答题也出来了,开源外挂越发猖獗,很多人也说这使得游戏变得毫无意义?


 写着文字之前,我也是最早一批开发所谓答题【外挂】的人,但......

我常在微博喊反对外挂,其实我反对的仅仅是狭义的外挂,也就是电子游戏中的外挂。


 有些人可能看见我反对外挂,习惯性地要夸一下我三观很正,然而我想说:用不用外挂其实和一个人的三观关系不大。

我反对电子游戏中的外挂,他不反对,我们不需要吵架。


因为我们的分歧并不是“使用外挂对不对”,而是“外挂是什么”——说得更深一点,我们的分歧在于“电子游戏是什么”。


 我认为电子游戏是体育竞技的一种,体育竞技应当满足奥林匹克精神:相互理解、友谊、团结和公平竞争。使用外挂是违反公平竞争精神的,外挂可耻。


 他认为电子游戏是文化商品的一种,游戏和电影音乐没有本质区别。休闲娱乐以开心为第一要务,开挂是为了玩儿的开心。他花钱买了游戏,他就是这个游戏的主人。


 我和他谁对谁错?你的心里已有答案,但是我们其实不在乎。


 强调一点,我和他都是普通人,没有几十万粉丝看我们直播打游戏,开挂不开挂纯属个人行为,对于青少年的心理健康不会产生良好的或不良的影响。


 公众人物是不可以开挂的,因为公众人物身上肩负着社会责任。这里我不冗述。

为什么我只反对电子游戏中的外挂?


 答题辅助、抢票软件,同样也是外挂。但它们是现实生活中的外挂,它们是西朝鲜这个丛林社会弱肉强食的一部分。丛林社会生而不公平,有钱人可以用钱解决一切问题,而没钱的人只能去和别人撕破脸皮。


 穷却狡猾的人,就会用工具帮自己撕破别人的脸皮。


 这里的狡猾不是贬义词——事实上一个丛林社会里面最容易生存的就是这种人。有些人头破血流了,破口大骂西朝鲜人生性卑劣,其实他是把社会风气的错归结到了民族性上,偏颇千里。


 人的塑造,三分靠天性,七分靠教育。出淤泥而不染的人不是不存在,只不过大部分人都不是。所以普通人当然不需要自怨自艾,错的不是你,是这个世界。


 我们所存在的现世,尚不具备稳定并且完善的规则,即便是相对公平规则也仍然处于起步阶段。如果人类没有把自己搞死的话,这些规则的动态调整可能会至少持续几千年。我们可以向着若干个奖杯迈进,并以更加文明的规则来约束自己的行为,这是好事,然而在真正拿到奖杯之前,我们并非已经是胜利者。


 这就是道德和立场问题。 

 有人认为游戏是竞技,有人认为是娱乐。 

 同样是偷窃, 

 盗墓贼可能觉得很酷,而偷我钱的贼就是杀千刀的。 

说了这么多,我来转转笔锋....


看了很多答题解决方案,整理分析了一下几点,当然如果你没什么技术开发能力,可以直接保存下面二维码微信打开扫一扫即可进入。

1517724862.png

WechatIMG508.jpeg.jpg


了解技术的下面我就和你们一一说下实现方法。


 一:AnswerHelper

 各种答题有奖节目(百万英雄,百万赢家,冲顶大会)的辅助工具

 会自动识别出题目和答案内容

 自动调用浏览器在百度中搜索问题和答案

 展示搜索结果并从搜索结果中智能推荐正确选项

 可有效避免“个性化题目”造成的各类云答题失效


 使用步骤

 1,构建节点组件

 安装的NodeJS最新版本

 命令行进入的NodeJS \ AnswerHelperServer \ node_modules \百度-AIP-SDK目录,执行命令:

 npm install

 命令行进入的NodeJS \ AnswerHelperServer目录,执行依次执行命令:

 npm install mime

 npm install cheerio

 npm install segment

 申请_百度文字识别服务测试账号,在文字识别服务中选择创建服务,获取到AppID,API Key,Secret Key后写入                                        AnswerHelperServer.js文件中的相应位置即可

 //设置APPID / AK / SK 

 var  APP_ID  =  “申请到的AppID ” ;

 var  API_KEY  =  “申请到的API密钥” ;

 var  SECRET_KEY  =  “申请到的秘密密钥” ;


 2,构建VC ++组件

 使用VS2008或更高版本打开AnswerHelper_vc2008.sln

 编译的Win32平台的发布版本的可执行文件AnswerHelper.exe


 3,投入使用

 放置AnswerHelper.exe文件与AnswerHelperServer目录在同一目录下

 在夜神模拟器安装答题软件

 启动AnswerHelper.exe程序并将程序区域出状语从句:题区域重合

 出现题目点击后Do按钮,程序将自动推荐答案

 点击Quit按钮退出程序

 中键点击程序界面可以隐藏的NodeJS的命令行窗口


 4,其他

 可以也。使用adb.exe工具来连接物理手机应用说明教学,但是那样比较慢,截图命令:


 adb shell screencap -p /sdcard/screen.png

 adb pull /sdcard/screen.png

 adb shell rm /sdcard/screen.png

 还可以将手机屏幕投影到电脑屏幕来提供答题图像。

 代码见:https://github.com/Shilyx/AnswerHelper

二:问答辅助建立题库的方式


 现在大多数答题辅助对于图像的识别都没啥问题,主要就是最后问题的搜索,在这主要是讨论一种建立题库的方式,仅供大家参考。https://github.com/neal1991/answers


 构建题库

 目前答题应用最关键的就是搜索算法了,现在利用 ocr 去识别图片已经不是关键问题,最关键的是如何搜索到正确的答案。现在出题的方式也越来越诡异,所以建立题库就很有必要了。


 目前来说各种答题辅助对于答题 APP 题目的文字的识别基本都没有太大的问题,主要的问题就是现在答案的搜索上。因为现在的题目出题方式越来越妖,直接去百度搜索或者百度搜索,或者统计搜索的结果数都是不太准确的。所以我希望能通过 elasticsearch 来建立一个问题题库,当然题库的建设需要其他人的建设和参与。


 部分代码主要是来自于 TopSup,主要增加的是题库的建立方法以及在题库中搜索的方法。


 ElasticSearch

 使用起来比较简单,直接运行 bin/elasticsearch 或者 bin/elasticsearch.bat( windows 平台)即可。

 验证 elasticsearch 是否正确运行, 打开浏览器访问 http://localhost:9200 出现结果为:

{

"name" : "69VnU74",

"cluster_name" : "elasticsearch",

"cluster_uuid" : "_ApoeosaQO24L7XfZUJ_1A",

"version" : {


"number" : "6.1.2",

"build_hash" : "5b1fea5",

"build_date" : "2018-01-10T02:35:59.208Z",

"build_snapshot" : false,

"lucene_version" : "7.1.0",

"minimum_wire_compatibility_version" : "5.6.0",

"minimum_index_compatibility_version" : "5.0.0"

},

"tagline" : "You Know, for Search"

}

Config


主要包括百度 ocr API 的相关配置以及截图区域的配置,按照 config/config.template.yaml来进行配置。

 贡献题库方式

 有两种方式你可以贡献题库,一种是通过文本方式,另外一种是上传图片的方式。


 文本方式

 你只要在 questions.txt 最后一行添加文字就可以了,问题和答案之间应该有一个空格。


 利用图片创建题库的方式一开始存在一个问题,如何从选项中找到正确的选项呢。一开始想通过选项的数字来判断,但是正确的选项并不一定是选择人数最多的。感谢图像处理这门课程,我想起来彩色的图片转换成灰度图的时候,灰度值应该比灰色图像的高。正确选项的背景颜色是彩色的,所以我们只要截图选项区域,然后通过两个阈值来过滤,设置阈值为 120 可以获得所有选项,设置阈值为 190 则不包含正确的选项,通过这个差别就可以找到正确的选项了。



更多方式欢迎补充....


    参与评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    DIGITALING
    登录后参与评论

    参与评论

    文明发言,无意义评论将很快被删除,异常行为可能被禁言
    800

    推荐评论

    暂无评论哦,快来评论一下吧!

    全部评论(0条)