zoukankan      html  css  js  c++  java
  • Java

    小米JS地址:

    http://p.www.xiaomi.com/zt/20130313/huodong/pm.min.js

    上面这个JS是小米抢手机页面的代码。和抢手机有直接关联。。


    虽然我3次都没抢到红米手机,但是今天偶尔发现这么一个js文件,对文件内容比较好奇,但是这个js开头有个数组,部分截图如下:


    开始这么一大堆的16进制字符串,这种类型的数据经常会在properties文件中看到,为了看到实际的内容,写了如下代码进行翻译。


    最简单的方式,只要把上面的代码,贴到浏览器(如chrome的console中),就可以看到还原的文字。


    另一种java方式,实现很简单,因为看到上面的x,首先想到的是16进制,看到u首先想到的是unicode,看如下完整代码:

    public class UnicodeHex {
    
    	public static String decode(String str) {
    		if(str==null||str.trim().equals("")){
    			return "";
    		}
    		String[] ss = str.split("\\");
    		int i = 0, j = 0;
    		int length = ss.length;
    		char[] cs = new char[length];
    		for (; i < ss.length; i++) {
    			if (!ss[i].trim().equals("")) {
    				cs[j] = (char) (Integer.valueOf(ss[i].substring(1), 16).intValue());
    				j++;
    			}
    		}
    		return new String(cs);
    	}
    
    	public static String encode(String str){
    		if(str==null||str.trim().equals("")){
    			return "";
    		}
    		StringBuffer sb = new StringBuffer();
    		char c;
    		for(int i=0;i<str.length();i++){
    			c = str.charAt(i);
    			if(c > 256){
    				sb.append("\u");
    			}
    			else {
    				sb.append("\x");
    			}
    			sb.append(Integer.toHexString(c));
    		}
    		return sb.toString();
    	}
    	
    	public static void main(String[] args) throws Exception {
    		String str = "\x3c\x2f\x69\x6e\x73\x3e\u5c0f\u65f6\x3c\x69\x6e\x73\x3e";
    		System.out.println(decode(str));
    		String ss = "</ins>小时<ins>";
    		System.out.println(encode(ss));
    		System.out.println(str);
    	}
    }


    使用decode解析上面的字符串,使用encode转换为上述字符串。


    小米这段代码都有什么呢,看如下部分内容(使用chrome,和上面java代码执行结果一样):



    这段代码中,最明显的应该就是:

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

    这段代码在后续点击按钮时,发送的请求就是这个。

    小米抢手机,好像是在服务器上限制了几百个线程,如果你正好抢到一个线程,你就进入了。如果抢不到,服务器返回一个503错误。


    小米每次的请求地址都不一样,如果在抢手机之前可以获得请求的字符串,也许就可以抢先别人获得线程...至于是否可行,就等下周二试试了。



  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/james1207/p/3285805.html
Copyright © 2011-2022 走看看