小米的搶購騙局+小米的搶購頁面的源代碼分析(二)文本數組的分析

首先小米源代碼的一部分是一個很是很是大的字符串數組,分析它很是耗費時間,可是要搞明白必須去作。。javascript



 var _$ = [html

//數組0位置,是空。java

"",數組

//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",app

//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",dom


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

  "\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",this

//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>小米三、小米電視、小米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的限制,被提交到服務器。

相關文章
相關標籤/搜索