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

本秂侑毒 提交于 2019-11-27 14:18:06

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



 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" onclick="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的限制,被提交到服务器。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!