hex2bin()先说这个函数吧,是对例如‘687474703a2f2f’的字符串进行16进制解码。
hex2bin('687474703a2f2f') 相当于 ‘http://’整段代码就是拼装一个url 放在变量var goto_url 里,然后判断 CONDITION ,如果满足条件 CONDITION 则在页面上打印一段提示文案“如果没有自动进入下一页, 请您点击下面的地址”并显示链接地址 goto_url 让用户手工去点。如果不满足上面的条件,自动跳转到 goto_url。
以下分析代码:var params = document.location.search.substr(1).split('&'); 是对当前url的尾巴 “?param1=a&param2=b&param3=c”进行第一次解析,“param1=a”“param2=b”“param3=c”以字符串形式存入params数组
for (var i = 0; i < params.length; i++)  这个循环是第二次解析,将params数组解析成 键值对 存入关联数组 url_params。 结果是 url_params.param1 = a; if (url_params.p)  判断关联数组 url_params 的p 键是否存在 作为 CONDITION ,很有可能当前页面的url是这样的形式“http://xxx.com/aaa.html?p=123”现在看 var goto_url = hex2bin('687474703a2f2f')+document.location.hostname+'/'; 
上面说了 hex2bin('687474703a2f2f') 相当于 ‘http://’  document.location.hostname  是网站域名如果满足条件 CONDITION 
继续拼装goto_url
goto_url += 'show/'+hex2bin(url_params.p).replace(/\|/g, '/')+ '.html'
中间将url_params.p中的 ‘|’替换为 '/'如果不满足条件 CONDITION 
直接跳转
document.location.href = goto_url; 

解决方案 »

  1.   


    function hex2bin(str) 

    var ascii = ''; 
    var str_length = str.length; 
    for (var x = 0; x < str_length; x += 2) //每次取两个字符

    ascii += String.fromCharCode(parseInt(str.substr(x, 2), 16)); //将Unicode 字符进行转换!

    return ascii; 

    主要是这个函数吧。先说:
    fromCharCode 方法从一些 Unicode 字符值中返回一个字符串。其它的好好没有说的必要。
      

  2.   

    简单解释:
    function hex2bin(str) 

    var ascii = ''; 
    var str_length = str.length; 
    for (var x = 0; x < str_length; x += 2) 

    ascii += String.fromCharCode(parseInt(str.substr(x, 2), 16)); 

    return ascii; 

    ----------------------------------------------------------------------
    定义功能函数:返回字符串中每个字符对应的Unicode码值;
    ----------------------------------------------------------------------var url_params = new Array(); 
    var params = document.location.search.substr(1).split('&'); 
    var goto_url = hex2bin('687474703a2f2f')+document.location.hostname+'/'; 
    ----------------------------------------------------------------------
    功能:定义一个数组,保存用符号“&”分解的WEB页地址栏中问号(?)之后的字符串(这之后数组的内容是
    "参数名称=参数值" 的形式),并使用前面定义的功能函数分解指定的字符串,加上本页域地址,构成转向的地址
    ----------------------------------------------------------------------for (var i = 0; i < params.length; i++) 

    var param = params[i].split('='); 
    url_params[param[0]] = param[1]; 

    ----------------------------------------------------------------------
    功能:即对数组url_params中每个的内容(前面说的)再用字符等号(=)进行分解,并保存在数组param中,然后再对数组url_params进行改造:用参数名称做标(其实就相当于下标,只不过可能为字母吧),用参数值做内容;
    ----------------------------------------------------------------------if (url_params.p) //p是什么啊,前面都没有,这模糊了

    goto_url += hex2bin('73686f772f')+hex2bin(url_params.p).replace(/\|/g, '/')+hex2bin('2e68746d6c'); 
    document.write(' <div style="text-align:center;">如果没有自动进入下一页, 请您点击下面的地址 <br /> <a href="'+ goto_url +'">'+ goto_url +' </a> </div>'); 

    document.location.href = goto_url; 
    ----------------------------------------------------------------------
    功能:用前面的功能函数hex2bin和正则过滤组建新的URL地址,输出相关提示,并进行转向工作
    ----------------------------------------------------------------------总的来说,其实就是转向另一个地址而已,只不过可能想隐蔽转向的那个地址(想下为什么 呵呵),所以故意用功能函数hex2bin进行字符的加密工作,反正计算机能识别能工作就是一般人不懂什么意思,给加分不?有点清苦费不呵呵
      

  3.   

    想到那个P了,呵呵....估计是对数组url_params进行改造后其中有某个下标为p的,要取出其中的内容,那个标为 p 里面估计就是含有域名的内容,这时不是明给,还需要进行一些正则匹配计算才得出最后的网址....呵呵,隐蔽一个网址,搞那么多的鬼,那人够鬼的...^=^