IT与工作首页投稿(暂停使用,暂停投稿)

风靡的左右脑几岁,它是怎么骗你的?!(猿类视角解密)

2017-10-27  本文已影响551人  Boboma

最近一款小程序可谓是风靡朋友圈,它的功能很简单,就是测试一下左右脑的发育年龄,由于其操作简单,结果明了,对比性强,勾起了很多人的好奇心,都要试一试,晒一晒,以满足大家强烈又空虚的交际需求,于是朋友圈各种刷屏,华丽的、搞笑的、脑残的...

1// 被挑衅


本人对这些东西基本无感(任你狂风暴雨的刷),但是直到朋友圈不断有人分享了下图,

并配以文字“不过是一个随机数,搞得大家各种high,各种晒......哭笑不得”(基本都是这个意思)

仔细看看代码,这让老夫不禁吐槽,这代码没毛病啊!,人家只不过有一行生成随机数的代码,但这个随机数并没有直接影响结果,我们没有充分证据,证明结果就是随机生成的啊!!!(图中还有模有样的标上哪一行.....)

不知道是哪个假程序员发了这个状态,然后就不断有人跟着瞎起哄,是秀智商,秀优越感,还是真的左右脑没发育好....

就好像,路上看到一个美女,由于多看了两眼,就被抓起来认定为“强奸”,这岂能忍!

2// 被调戏

这赤裸裸的挑衅,孰不可忍啊,于是自己也玩了一把。。。

结果如下:

“左脑25,右脑27”,这是多么完美的数据,多么准确的描述,怎么就那么多人说不准呢?!!

我多么希望他是准确的啊.....但是,我又测试了一次(同样的答案),他给我的结果就是这样的了....

“左脑30,右脑49”,这,我吃柠檬,同样的数据,偏差这么大的结果,逗我呢?!

接着,又测试,又不同,又测试,又不同......

非常悲痛的得出一个结论:

结果随机,不准,非常不准!

3// 探究

作为一个头发日渐稀少的程序猿,居然被这么调戏,忍不了,要好好跟他玩一下了...

我就是要看一下,你到底能给出多少种结果,有多少更荒唐的数据!

由于每种结果,都是一副图片展示的,结果集绝对有限,不然你要累死作图的吗?!!! 当然,也可以自动的生成图片,不过我猜这个小程序没达到这种水平(也不至于费那劲)。

解密之路正式开始:

@1

首先得找到一个破解的突破口,微信这边的校验太强,不好测试;但是像这种小测试游戏,网上应该都有,百度搜啊搜,终于还找到了,题目,结果,界面,都是一模一样

网站如下:http://cn.qinpiam.cn/f/276

OK,关键的第一步完成!

@2

使用浏览器访问网址,查看源码和资源,看能不能找到关键的JS提交数据的地方

哎我的妈,几十个js文件,看的眼花缭乱,也没找到有用信息,要不就是被加密,要不就是无关紧要信息。

无奈,这个简洁的道路走不通。


@3

那只有亲自做一遍题目,提交结果。通过浏览器查看这个过程中提交的报文和接受的报文内容

通过观察发现,当做完最后一道题时,会通过form表单自动提交答案,然后页面跳转。由于整个过程是连贯的,我们通过浏览器能看到的是新页面的内容,无法看到form表单的post请求信息。(工具有限啊,只有一个chrome浏览器)

继续想办法....似乎卡住了...(起身走走,去个WC,思路能开阔些...)

有了,当我们打开做题的页面时,我把网络断开,当做完最后一道题,自动进行post数据提交时,由于没有网络,就没法完成,这时候我们就能通过浏览器,看到post请求的信息了,哈哈哈!

截图如下:

请求报文内容一步了然啊!


@4

模拟信息提交。

有了数据,有了服务器地址,我们就可以自己写一个form表单,填充数据,来模拟提交。

如此简陋的页面...

点击提交按钮,见证奇迹的时刻到了:

我们得到了服务器返回的数据:

{"user_id": "anonymous:ae3cfef1-73de-4cf5-8123-e65832e9cfc8","fr_token":"KbtzHj3aicgP55","hashed_ids":"MRYWb4z4sB2weZ1m","result_wait": 3,"answer_id": 3123,"user_upload_img_url": ""}

看到了一个关键字:answer_id=3123。这个应该就是本次测试的结果。

再重复提交几次,分别得到如下结果:

{"user_id": "anonymous:ae3cfef1-73de-4cf5-8123-e65832e9cfc8", "hashed_ids": "P1mBdJNlcq9Wd0J6", "fr_token": "Qo8HVqbwhZ8bDBgF", "user_upload_img_url": "", "result_wait": 3, "answer_id": 3062}

{"user_id": "anonymous:ae3cfef1-73de-4cf5-8123-e65832e9cfc8", "hashed_ids": "P3RBe3yOupgybLJr", "fr_token": "pgldNbqLm9nJ7rD", "user_upload_img_url": "", "result_wait": 3, "answer_id": 3122}

{"user_id": "anonymous:ae3cfef1-73de-4cf5-8123-e65832e9cfc8", "hashed_ids": "P1mBdJNlcq9Wd0J6", "fr_token": "frmK02UkSVwYqeGQ", "user_upload_img_url": "", "result_wait": 3, "answer_id": 3062}

果然,结果就是随机的!!!


@5

分析结果

这个结果数据有什么用呢??

{

"user_id": "anonymous:ae3cfef1-73de-4cf5-8123-e65832e9cfc8",

"fr_token": "KbtzHj3aicgP55",

"hashed_ids": "MRYWb4z4sB2weZ1m",

"result_wait": 3,

"answer_id": 3123,

"user_upload_img_url": ""

},

带着这样的疑问,我又做了一遍题,看看结果页面的地址,和这个数据有什么关系。

看到浏览器结果页面的地址如下:

http://cn.qinpiam.cn/f/VyBXdLvnTRByaJZY/r/CbiDtjusjNV68rM7

发现这两个字符串与结果数据中的fr_token和hashed_ids对应的字符串长的好像,

于是尝试着替换一下,得到地址:

http://cn.qinpiam.cn/f/KbtzHj3aicgP55/r/MRYWb4z4sB2weZ1m

访问结果:

页面错误

好像不行。

再交替替换一下:

http://cn.qinpiam.cn/f/MRYWb4z4sB2weZ1m/r/KbtzHj3aicgP55

得到正确的页面

居然真的可以了,功夫不负有心人啊!!

到这一步,我们已经可以模拟访问服务器,并分析返回结果,得到结果页面。

@6

那我就开始暴力访问吧,到底有多少种结果。

编写java代码,模拟post请求,循环500次,看究竟有多少种结果!!

代码片段:

Java 模拟post请求片段(循环提交500次)

打印日志:

500访问结果(结果集合,结果图片url,结果页面url)

从结果可以看出来,一共有10组答案(话说设计师太懒了吧,才10张图片啊......)

,其实我们的内心是崩溃的,这tm也太少了,开始的时候多试几次不就行了吗,需要花这功夫啊.......

answer_id分别为 [3066, 3120, 3064, 3121, 3068, 3070, 3062, 3123, 3124, 3122],

500次访问,他们出现的概率基本一样,可以得出,我们每种结果的出现概率是一样的(纯随机啊....)

分别访问对应的结果页面,我们可以得到这些大脑发育图(10张):

10种测试结果

@7

至此,我们终于得到结论:

该测试确实是随机的,没有参考价值,仅供娱乐;结果无非就这10种,分别是:

编号        左脑         右脑

1                19            20

2                46           19

3                 9            26

4                33            5

5                25            27

6                35            8

7                30            49

8                11            33

9                39            22

10               27            43

最后我有翻看了这几天朋友圈晒的测试结果,果不其然,都包含在这10个结果之中。

夜已深,该睡了,boboma于2017-10-27 01:39

上一篇下一篇

猜你喜欢

热点阅读