大众世界 world of demotic + 社区新动力

 找回密码
 注册会员
搜索
查看: 5617|回复: 0

[分享] 小米手机 抢购破解

[复制链接]
发表于 2013-10-15 15:31:32 | 显示全部楼层 |阅读模式
小米开放购买代码门,购买权限门后续——在开放购买之前,能不能购买成功已经被小米服务器决定! O+ x+ I; [% u3 L9 t- ?
关于小米购买权限门事件得从这篇帖子说起,如果你们现在打开上面的网址,会显示提示: 作者被禁止或删除 内容自动屏蔽。但是作者似乎并没有干什么,只是在帖子内容里说了几句脏话,小米论坛管理员就屏蔽了该作者,不禁让人浮想连篇。根据下面的回复我们还是可以知道大概发生了什么事情。在小米论坛上,另外有人引用了该作者的原帖,复制粘贴了该作者的帖子内容,并且加以验证。帖子地址如下。这位作者因为没有激烈的言辞,内容没有被禁止,我们可以看到帖子的内容,数据显示,在回复数达到102的时候,论坛管理员出现,使得这篇帖子没有被继续回复,浏览数不过2000,因此,大部分人还并不知道,小米抢购需要排队后,并不是所有的帐号只要预约了就有权限参与抢购小米手机,有的帐号可以连续不断,从8月12号到10月8号,每次只要排一次队就可以顺利抢到一台小米手机,可以说,逢抢必中。他们并不清楚,其实,小米每次抢购是否能通过排队进入抢购页面,早就被小米后台决定好了。如何知道你有没有机会呢?帖子里作者给出方法
1. 首先登录自己的账号
2. 在浏览器地址栏输入 tc.hd.xiaomi.com/hdget?callback=hdcontrol 访问然后会返回一段代码,
格式如下:
hdcontrol({"stime":1381645438,"status":{"allow":false,"miphone":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null},"mibox":{"hdstart":false,"hdstop":false,"hdurl":"","duration":null}}}))
如果allow后返回的是 false 就表示没有权限,禁止购买了,就算你速度再快,也不可能买到,返回是true才表示有权限,才有机会能购买到。/ S9 D7 R2 R7 r# g
这个怎么理解呢?要理解这个得首先用JS格式转换器,把上面的代码进行转换,转换结果如下& D/ J; G# O% D# B
hdcontrol({
    "stime": 1381645438,
    "status": {' n. [8 x5 ?. Z* `  m; K$ v
        "allow": false,, m9 L6 p! U: m# C/ x
        "miphone": {
            "hdstart": false,
            "hdstop": false,
            "hdurl": ""," b: I4 n/ V6 v" b$ F! T; P6 j* R# w
            "duration": null
        },
        "mibox": {" d; ^2 V& O" [/ V* i( N
            "hdstart": false,
            "hdstop": false,! v, L  g5 x! e6 P! A: I4 b
            "hdurl": "",& }  m/ Q9 Y1 j7 Y4 h- V9 Y
            "duration": null. g+ i. L2 W" F4 }. T3 b
        }' U2 P6 K( y" ?+ e$ ^. C
    }- G. Q3 s* G  E* D& _
}))
抢购开始的时候,hdurl 后面会是小米手机的抢购网址(去域名后)。稍微懂代码常识的人都知道,当allow后面的值为false的时候意味着下面的代码将不被执行,也就是说,你进不了页面,把抢购网页复制到浏览器链接栏直接打开,小米服务器也会驳回你的请求,把你送回排队页面。这还意味着,当allow后面的值为true时,你向小米服务器发送的请求才会被受理,让你进入抢购页面,于是allow后面的值为true就成为了是否有机会购买小米手机的一个重要权限。根据这篇帖子作者的原话(已被禁止),我们知道,一开始这个作者的帐号allow后面的值为true,并且该作者因为allow后面的值为true,在排队系统出来后成功购买了多台小米手机,并且根据多个帐号的测试结果,得出结论:allow后面的值为true才能进入抢购页面选购小米手机,而且作者强调了,是有机会,有进去的概率,而为false则是无限排队,或者进去就被弹出,无法购买小米手机,相信你们中一定有很多人已经忘记了小米选版本的页面是什么样子。该作者之所以曝光这个问题,是因为既得利益的失去,他的帐号前几次allow后面的值还为true,还能购买小米手机,现在allow后面的值为false,无法购买。正是因为这个动机,让我相信该作者,觉得他说的有道理。楼主自己用自己的帐号进行了测试,发现为false,这正好验证了我无法进入抢购页面,无限排队的事实。但是这不足以说明问题,我还需要对比,我有个同事,每次排队只要排一次,第二次点进入活动,立马进去,每次都能买到一台小米手机,让楼主眼红了很久,楼主曾经尝试了所有的东西,包括电脑系统,网速,网络,浏览器,每一次我都让自己的抢购环境和他一样,但是每一次我都是无限排队,他每次都进。这让楼主纳闷了很久,我把同事的帐号拿来进行测试,顿时五雷轰顶,简直要背过气,气疯了。! v* I8 v; i2 ^- C" a6 N/ y$ h& ?
hdcontrol({( ]& b8 E; c0 V
    "stime": 1381645344,& K  b7 G5 N, ~* j8 P
    "status": {
        "allow": true,
        "miphone": {& j& K8 Z3 \) J% p* ~3 J% T/ T: |
            "hdstart": false,% N/ F& Y9 ^) t4 Y. y1 Z& y
            "hdstop": false,' @9 v9 g' x3 Z
            "hdurl": "",
            "duration": null
        },
        "mibox": {5 @' _3 v: v* t- @6 C* |7 z( u4 l
            "hdstart": false,
            "hdstop": false,
            "hdurl": "",
            "duration": null8 n5 \- V$ _; }+ w
        }
    }, N) w: B% F7 a8 T
}))$ q7 t7 R% e: C
以上是他的返回值,自此楼主总算明白了为什么他每次抢购都能成功,真的不是网速不是人品不是运气,根本问题就出在帐号上。
楼主仔细研究过抢购时调出来的排队窗口,这个窗口的作用有两个,一个是统一化数据传送格式,使得所有通过排队向小米服务器发送请求的数据格式相同,便于服务器识别,另一个就是错时减轻服务器压力。这也正是直接复制粘贴抢购网址到链接栏被弹回开放购买页面的原因,服务器拒绝非上述格式的请求,想通过直接复制粘贴网址的形式肯定行不通。那么通过直接发送数据的形式请求抢购页面是不是行的通呢?我以为是可以的,只要数据格式和通过排队发送的数据格式一样就可以。那请求是不是能通过呢?是不是可以通过大量的发送数据,请求抢购页面呢?一开始我以为是可行的,直到我看见了上面因为既得利益失去所以曝光内幕的作者发的帖子,恍然大悟。最终的决定权其实还是不在用户手里,排队只是减轻服务器压力,延长抢购时间的一个策略,能不能进入抢购页面购买手机,甚至都不怎么和概率相关,关键得看小米的服务器。我大胆的作出了一个假设,小米系统后台偷偷的对一部分帐号进行了特殊标记,一般情况下看不出区别,但是每次抢购活动就会体现出差别,比如优先购买权。比如之前同事的帐号,排队只要一次,可以连续买多台。上面帖子里的方法就可以进行检测,allow后面的值为true,就代表你的帐号被特殊标记上了,有优先购买权,(14号下午六点左右,该通道已经关闭,今天再次开放,大家可以去进行测试,测试得出为true 进入这个网页[这是9月3号的抢购页面,因为留着有作用,具体的作用,发现小米排队BUG的人都知道是干啥的,在这个页面点击立即购买,true只需要排一次队即可进入小米网,原因是hdurl后为空,自动跳回主域,正好是在这个页面测试得到的结果会和你们今天的抢购结果非常接近,在这个页面无限排队也就等于你的帐号今天会一直排队到活动结束,不信,我们拭目以待)。
小米论坛管理员关于这个问题的回复坚决异常:九五先生   小米公司技术团队
该问题在原帖做出解答,首先小米手机的抢购方式一定是公平的,楼主所列出的代码与是否预约成功和能不能抢到没有必然的关系。主要是由于预约人数过多,所以小米采用了不同的机制来保证用户进行抢购,true和false仅仅是其中一种机制的返回值,因此完全不存在楼主所说的情况。' B$ c5 @3 c4 S2 N  T% ~
关于小米论坛管理员异常坚决的回复更让楼主觉得事有蹊跷,要知道,他们平时可都是会说,有什么事情可以去办事大厅或者什么什么的。。。这次的回复是完全不存在楼主所说的情况。你们要知道,无风不起浪。你们要知道,真的不是只有一个帐号连续多次逢抢必中。你们要知道,楼主做过了数据分析,检测了多个多次成功购买的帐号才敢发帖。关于证据楼主完全可以给你们看截图,楼主也很想把帐号给你们让你们自己去看,可是帐号是别人的,这个帐号allow后面的值还为true,米3的抢购会给他带来更多的收益,我可不能砸了人家的饭碗,按照每个月4场抢购,只要保证帐号allow后面的值为true,那么他一个月只要每周二在电脑前面代几分钟,就有一两千的收入,这个你们清楚么?如果完全不存在楼主所说的问题,为什么有的帐号排队一次就肯定进,有的帐号排了无数次还是进不了呢?概率不是这样算的吧,有的帐号是100%,而有的帐号是0,你们所说的概率应该是 (allow后面的值为true的帐号个数*100%+allow后面的值为false的帐号个数*0)/总帐号=开放购买的实际手机数量/预约人数。你们看吧,这一定就是95先生口中所说的一定公平,一定是处理数据的人蒙蔽了他的眼睛,用这样的伎俩糊弄他,告诉他,开放购买是绝对公平的。他才觉得一定公平,这真的不是95先生的错,请大家不要怪他,他只是不知情而已。如果他真的知道有人用这样的方式欺骗用户,那他一定会站出来主持公道,我真的真的丝毫没有贬低95先生的意思,我知道你们中有很多人很爱戴95先生,我也和你们一样,盲目的爱戴他而不管他的身份和立场,只要有人贬低他,就会站出来替他说话。  N# n: b4 _. q& U
现在检测通道已经关闭,究竟是出于什么原因,我不清楚,我只知道,我的同事今天又购买成功,并且成功地卖了帐号,有了400元的收入。而我依然没有抢到,尽管我很努力地让自己的抢购环境和他一样,但是你们也清楚啊,就算抢购环境一样,他能抢到你抢不到也只是是人品问题的嘛。谁让你的帐号没有被特殊标记上呢?
这种通过后台对帐号进行特殊标记的方法显然为一些帐号创造了巨大的便利,既然小米可以通过后台对一些帐号进行标记,那我们怎么知道他们究竟对哪些帐号进行了标记呢?如果,我是说如果,小米通过这种技术手段(其实也不是很复杂,只要提前将某些帐号拉进数据库,与向服务器发出请求抢购页面的帐号进行比对就行了,你们说,有没有道理,同事的帐号被拉进去了,比对之后得出了true,我的没有被拉进去,比对得出的是false,无法进入抢购页面)将大批量小米内部员工注册的帐号进行标记,小米就可以光明正大的跟大家说我们放了10万台,抢购持续了很长时间,你们没抢到说明运气不好,下次再来吧。然后转过身,把内部员工抢到的资格号变卖,或者不购买,而是把库存留给其他电商,让他们光明正大的加价出售。而小米手机仍然保持着高性价比的名声,加价这种事与他无关,是淘宝商家的不对,是其他电商的不对,都是他们的错。当然了,我并不清楚排队系统出来之后,小米的抢购活动存不存在监守自盗,我在这里只是从原理上给大家揭示监守自盗行为可能存在的合理性和实际操作上的可行性。是不是真的有这样的事情我们并不清楚,我们根据原理完全可以推测出实际操作的可行性。我们再假设,小米内部保留了大批量已经被标记好的小米账号,雇佣一定的人员,没人发多少多少个,在每次开放购买的时候进行抢购,如果开放购买持续2分钟,手动操作,每人至少可以抢20个。如果小米内部自主开发出软件,那更是没话讲了,从帐号,代码到验证码,全路通关,在成千上万的人向服务器发送的请求被拒绝,停留在抢购页面的时候,小米已经保留下了大量的库存。你们说,怎么能保证这样的事情没有,不会发生。要证据么?要证据么?你们没有看见很多人在晒自己一次又一次的成功抢购截图么?你们没有看见图片里每次开放抢购他们总能买到一台么?你们没看见论坛管理员极其明确的表态说这种现象是完全不存在的么?你们没有看见有人因为既得利益的失去开始曝光让小米难堪么?你们没有看见米粉因为长期抢不到小米抓住这个机会死咬不放祈求能够通过舆论的压力让抢购更加公平公正么?你们不抓着这个机会和楼主一起,还要在机会失去之后接着可怜兮兮地被坑么?

我的围脖 估计马上帖子就被封


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|Wod Inc. ( 蜀ICP备20000008号-8

GMT+8, 2024-5-13 10:06 , Processed in 0.134630 second(s), 34 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表