小米的抢购骗局+小米的抢购页面的源代码分析(二)文本数组的分析

首先小米源代码的一部分是一个非常非常大的字符串数组,分析它非常耗费时间,但是要搞明白必须去做。。



 var _$ = [

//数组0位置,是空。

"",

//2位置,是抢购的开始日期的字符串“11/19/2013 12:00:00”
 "\x31\x31\x2f\x31\x39\x2f\x32\x30\x31\x33\x20\x31\x32\x3a\x30\x30\x3a\x30\x30",
 //3位置,是一个奇怪的网址:http://p.www.xiaomi.com/m/zt/open/index.htm
    "\x68\x74\x74\x70\x3a\x2f\x2f\x70\x2e\x77\x77\x77\x2e\x78\x69\x61\x6f\x6d\x69\x2e\x63\x6f\x6d\x2f\x6d\x2f\x7a\x74\x2f\x6f\x70\x65\x6e\x2f\x69\x6e\x64\x65\x78\x2e\x68\x74\x6d\x6c",
 "\x68\x74\x74\x70\x3a\x2f\x2f\x74\x63\x2e\x68\x64\x2e\x78\x69\x61\x6f\x6d\x69\x2e\x63\x6f\x6d\x2f\x68\x64\x67\x65\x74\x3f\x63\x61\x6c\x6c\x62\x61\x63\x6b\x3d\x68\x64\x63\x6f\x6e\x74\x72\x6f\x6c\x26\x5f\x3d",

//4位置,http://tc.hd.xiaomi.com/hdinfo?callback=hdinfo&_= 这样一个网址,估计是查看活动内容的
 "\x68\x74\x74\x70\x3a\x2f\x2f\x74\x63\x2e\x68\x64\x2e\x78\x69\x61\x6f\x6d\x69\x2e\x63\x6f\x6d\x2f\x68\x64\x69\x6e\x66\x6f\x3f\x63\x61\x6c\x6c\x62\x61\x63\x6b\x3d\x68\x64\x69\x6e\x66\x6f\x26\x5f\x3d",

//5位置,http://t.hd.xiaomi.com/r/?_a=payment_check 这个是查看是否支付的
 "\x68\x74\x74\x70\x3a\x2f\x2f\x74\x2e\x68\x64\x2e\x78\x69\x61\x6f\x6d\x69\x2e\x63\x6f\x6d\x2f\x72\x2f\x3f\x5f\x61\x3d\x70\x61\x79\x6d\x65\x6e\x74\x5f\x63\x68\x65\x63\x6b",

//6位置,http://t.hd.xiaomi.com/r/?_a=payment_check_tv 继续是payment_check_tv这个是电视的
 "\x68\x74\x74\x70\x3a\x2f\x2f\x74\x2e\x68\x64\x2e\x78\x69\x61\x6f\x6d\x69\x2e\x63\x6f\x6d\x2f\x72\x2f\x3f\x5f\x61\x3d\x70\x61\x79\x6d\x65\x6e\x74\x5f\x63\x68\x65\x63\x6b\x5f\x74\x76",


//7位置,http://t.hd.xiaomi.com/r/?_a=payment_check_box 盒子的支付检验

  "\x68\x74\x74\x70\x3a\x2f\x2f\x74\x2e\x68\x64\x2e\x78\x69\x61\x6f\x6d\x69\x2e\x63\x6f\x6d\x2f\x72\x2f\x3f\x5f\x61\x3d\x70\x61\x79\x6d\x65\x6e\x74\x5f\x63\x68\x65\x63\x6b\x5f\x62\x6f\x78",

//8,http://t.hd.xiaomi.com/r/?_a=20131105&_op=check 有个日期,不知道check什么,不过日期是5号的。
 "\x68\x74\x74\x70\x3a\x2f\x2f\x74\x2e\x68\x64\x2e\x78\x69\x61\x6f\x6d\x69\x2e\x63\x6f\x6d\x2f\x72\x2f\x3f\x5f\x61\x3d\x32\x30\x31\x33\x31\x31\x30\x35\x26\x5f\x6f\x70\x3d\x63\x68\x65\x63\x6b",


分析到第9行,我开始犯懒了,写个程序来偷懒。。


 

  • list = [];
    for (var i = 0, l = arr.length; i < l; i++) 
    {
        list[list.length] = '<li>' +i+':  '+ arr[i] + '';
    }
    list = '<ul>' + list.join('') + '</ul>'; 
    
    document.getElementById("copyright").innerHTML=list;

      解析的结果如下:


其中218行显示失败了,单独处理一下0:


1: 11/19/2013 12:00:00


2: http://p.www.xiaomi.com/m/zt/open/index.html


3: http://tc.hd.xiaomi.com/hdget?callback=hdcontrol&_=


4: http://tc.hd.xiaomi.com/hdinfo?callback=hdinfo&_=


5: http://t.hd.xiaomi.com/r/?_a=payment_check


6: http://t.hd.xiaomi.com/r/?_a=payment_check_tv


7: http://t.hd.xiaomi.com/r/?_a=payment_check_box


8: http://t.hd.xiaomi.com/r/?_a=20131105&_op=check


9: http://t.hd.xiaomi.com/r/?_a=20131105_tv&_op=check


10: http://t.hd.xiaomi.com/c/?_a=20131119_phone&_op=check


11: http://t.hd.xiaomi.com/c/?_a=20131119_tv&_op=check


12: http://t.hd.xiaomi.com/c/?_a=20131119_box&_op=check


13: http://t.hd.xiaomi.com/r/?_a=20131119&_op=book


14: http://t.hd.xiaomi.com/r/?_a=20131119_tv&_op=book


15: http://t.hd.xiaomi.com/r/?_a=20131119&_op=book


16: http://p.www.xiaomi.com/zt/xm_account/limitfacade.html?third=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fp.www.xiaomi.com%25252Fopen%25252Findex.html%2526sign%253DYWY4NjlhMmExNzkzNGE5YTBjYjAzNzVjZTc1MmE5OTYwYmVlODc4NA%252C%252C%26sid%3Deshop&sid=eshop&callback=http%253A%252F%252Forder.xiaomi.com%252Flogin%252Fcallback%253Ffollowup%253Dhttp%25253A%25252F%25252Fp.www.xiaomi.com%25252Fopen%25252Findex.html%2526sign%253DYWY4NjlhMmExNzkzNGE5YTBjYjAzNzVjZTc1MmE5OTYwYmVlODc4NA%252C%252C&sign=9ZAFXvlDKGxSJhEBqKdOtQp633c%253D


17: orgin


18: xm_xt_prex


19: userId


20: xm_firbut_hd


21: DOMContentLoaded


22: onreadystatechange


23: DOMContentLoaded


24: onreadystatechange


25: left


26: string


27: [object Object]


28: number


29: =


30: ; expires=


31:


32: ; path=


33:


34: ; domain=


35:


36: ; secure


37:


38:


39: (?:^|; )


40: =([^;]*)


41: on


42: (^|&)


43: =([^&]*)(&|$)


44: i


45: -cache


46:


47: script


48: loaded


49: complete


50:


51: -cache


52: head


53: http://m.xiaomi.com


54: mapp


55: /


56: .xiaomi.com


57: Android


58: iPhone


59: iPod


60: Symbian


61:


62: http://t.hd.xiaomi.com/s/


63: /


64: .xiaomi.com


65: phone


66: box


67: tv


68: preLoad


69: none


70: hdTipInfo


71: none


72: showMore


73: none


74: tv


75: phone


76: box


77:


78: -reg


79: preLoad


80: none


81: hdTipInfo


82: none


83: showMore


84: none


85: hdinfo


86: undefined


87: preLoad


88: none


89: preLoad


90: <p>抱歉,网络拥堵无法连接服务器。由于访问人数太多导致服务器压力山大,请刷新页面重试~


91: preLoad


92: background:none;


93: hdTipInfo


94: none


95: showMore


96: none


97: <span>


98: </ins>小时


99: </ins>分


100: </ins>秒后开始


101: <span>


102: </ins>分


103: </ins>秒后开始


104: <span>


105: </ins>秒后开始


106: surTime


107: surTime


108: surTime


109: 正在加载中...


110:


111: boxbg


112: box


113: px


114: block


115: block


116: LoadingAnimate


117: none


118: none


119: hdget


120: hdBtns


121: hdSubTitle


122: hdLnks


123: hdMsg


124: mi3btn


125: mitvbtn


126: linksCon-span


127: 购买查询


128: <a class="btn" onClick="Util.showBox('phone');">购买手机


129: <a class="btn" onClick="Util.showBox('tv');">购买电视


130: <a class="btn" onClick="Util.showBox('box');">购买盒子


131: xm_pf_wl


132: <a class="btn" href="


133: " onClick="return Util.bookedPop('phone',this);">支付手机</a>


134: <a class="btn" href="


135: "  target="_blank">预约手机</a>


136: xm_pft_wl


137: <a class="btn" href="


138: " onClick="return Util.bookedPop('tv',this);">支付电视</a>


139: <a class="btn" href="


140: "  target="_blank">预约电视</a>


141: xm_pfb_wl


142: <a class="btn" href="


143: " onClick="return Util.bookedPop('box',this);">支付盒子</a>


144: <a class="btn" href="


145: "  target="_blank">预约盒子</a>


146: <span class="untime">正在加载中...


147: <a class="btn" href="


148: " title="提前登录" >提前登录</a>


149: 11月19日星期二中午12点开放购买<br>小米3、小米电视、小米2S、红米手机、小米盒子


150: 开放购买所有产品已售罄,成功购买用户请尽快支付<br>下午3点将进行剩余订单专场


151: <a href="


152: " target="_blank">手机预约查询</a>


155: <a href="


156: " target="_blank">手机购买查询</a>


159: 购买成功用户请在2小时内下单,下单后2小时内支付<br/>购买成功用户支付通道:160: " onClick="return Util.bookedPop('phone',this);">支付手机</a>


163: 成功购买用户请在2小时内下单,下单后2小时内支付<br/>红米手机联通合约版首发,¥999起。立即购买


164:


165: <p class="btn-noStart">1999元(16GB)即将开始


166: <a onClick="Util.showBox('phone');" class="btn-mid" href="#">1999元(16GB)立即购买


167: <a class="btn-mid" href="


168: " onClick="return Util.bookedPop('phone',this);"><span>1999元(16GB)立即支付


169: <p class="btn-noStart">2999元即将开始


170: <a onClick="Util.showBox('tv');" class="btn-mid" href="#">2999元立即购买


171: <a class="btn-mid" href="


172: " onClick="return Util.bookedPop('tv',this);"><span>2999元立即支付


173:


174:


175:


176: <h3>对不起,


177: 都售罄了</h3>都是我不好,人数太多,机器太少。


别灰心,你可返回首页尝试购买


178: ,<br/>也可立即预约11月26日下轮开放购买。


返回活动首页


180: phone


181: 小米手机


182: 小米电视及小米盒子


183: tv


184: 小米电视


185: 小米手机及小米盒子


186: box


187: 小米盒子


188: 小米手机及小米电视


189: box-reg-wrap


190: box-reg-wrap


191: url(http://p.www.xiaomi.com/open/131101/images/mitu-2.png) no-repeat 5px 0


192: reback


193: box-close


194: X


195: 进入活动


196: reback_btn_next


197: 重新进入(<span id='initCount'>


198: </span>)


199: reback


200: hdget


201: _trackEvent


202: 活动


203: 抢购


204: 进入活动


205: box-close


206:


207: reback


208: reback_btn


209: top


210: topmitv


211: top


212: topmi3


213: undefined


214: videoBoxMask


215: px


216: px


217: block


218: <span class="close" οnclick="Util.closeBox()" title="关闭">X


219: videoBox


220: data-url


221: {{videoUrl}}


222: block


223: videoBox


224: none


225: videoBox


226:


227: videoBoxMask


228: none


229:


230:


231:


232: <h3>很遗憾,您没有预约


233: 喔</h3>参与开放购买需要提前预约,别灰心,你可返回首页尝试购买


234: , 也可立即预约11月26日星期二开放购买</p>


返回活动首页



236: phone


237: 小米手机


238: 小米电视及小米盒子


239: tv


240: 小米电视


241: 小米手机及小米盒子


242: box


243: 小米盒子


244: 小米手机及小米电视


245: box-reg-wrap


246: box-reg-wrap


247: url(http://p.www.xiaomi.com/open/131101/images/mitu-1.png) no-repeat 5px 0


248:


249: phone


250: 购买手机


251: tv


252: 购买电视


253: box


254: 购买盒子


255: _trackEvent


256: 活动


257: 抢购


258: href


259: phone


260: tv


261: box


262: -reg


263: phone


264: tv


265: box


266: -reg


267: hdget


268: px 0


269: hdinfo


270:


271: XM_


272: _UN


273:


274:


275: script


276: https://account.xiaomi.com/pass/userInfoJsonP?userId=


277: &callback=loginInfo.getAccountInfo


278: text/javascript


279: head


280: LoginArea


281: LoginArea


282: 欢迎您&nbsp;


283: !<a href='http://order.xiaomi.com/site/logout'>退出


284: LoginArea


285: 12px


286: /


287: .xiaomi.com


288: XM_


289: _UN


290: box-cache-btn


291: hdget


292: linksCon


293: mouseover


294: hdLnks


295: block


296: linksCon-span


297: background-color:#fff;color:#333


298: linksCon


299: mouseout


300: hdLnks


301: none


302: linksCon-span


303: background:none;border:0;


304: _setAccount


305: UA-24946561-1


306: _addOrganic


307: baidu


308: word


309: _addOrganic


310: soso


311: w


312: _addOrganic


313: vnet


314: kw


315: _addOrganic


316: sogou


317: query


318: _addOrganic


319: youdao


320: q


321: _addOrganic


322: so


323: q


324: _setDomainName


325: xiaomi.com


326: _setAllowLinker


327: _trackPageview


328: script


329: text/javascript


330: https:


331: https://ssl


332: http://www


333: .google-analytics.com/ga.js


334: script


335: setDomainId


336: trackPageView


337: script


338: text/javascript


339: http://p.www.xiaomi.com/js/xmst.js


340: script


OK,第一篇完成。。

需要注意的是,其实我们点抢购按钮的时候,请求其实没有发送到服务器,而是被js给挡住了。

只有少数人的请求会通过js的限制,被提交到服务器。


转载于:https://my.oschina.net/brinlike/blog/177444

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值