郁闷....现在的JS都流行这样写?..google的好像也是...
看不懂。

解决方案 »

  1.   

    to meizz(梅花雪)
    "一个类似于JS混淆器的加密密文,不过有所改进,考虑到了代码量的压缩等。"你的意思,新浪的程序是经过加密处理了?是吗?
    “一个类似于JS混淆器的加密密文”是什么意思呀?
    能否说的详细一些呀?
    谢谢!
      

  2.   

    嗯。同意theforever(碧海情天) 。
    梅花雪能否写个解密文件出来。
      

  3.   

    嗯,是呀!没有用过混淆器。
    刚才我下了一个Javascript Obfuscator 2.22。我想问一下怎么用呀?我研究了一下。我看这种工具好象只能改函数,变量的名字呀!好象也无法变成象新浪那样的代码呀?
      

  4.   

    var V4_HOST="http://comment4.news.sina.com.cn";var XML_CGI="/cgi-bin/comment/page_xml.cgi?type=";var VIEW_CGI="/comment/comment4.html";var POST_CGI="/cgi-bin/comment/post.cgi";var PROXY_CGI="/cgi-bin/comment/xmlhttp_proxy.cgi?url=";var SKIN_PATH="/comment/skin";var XML_PATH="/comment/xml";var ERRPR_PAGE="/comment/error.html";var PVLOG_PAGE="/comment/log.html";var AD_CONFIG="/comment/adconfig.xml";var SUB_COUNT_1=128;var SUB_COUNT_2=255;var MSGS_PERPAGE=20;var DEFAULT_RETLEN=50;var FILTER_LENGTH=20;var RETRY_DELAY=2000;var DEFAULT_SKIN="default";var AUTO_REFRESH="1";var TOP_FLAG="TOP_FLAG";var M_DELETE=2,M_HIDE=4,M_CHECK=8,M_WAIT=16,M_PASS=32,M_NICE=64;var N_HIDE=1,N_NOTHOT=2,N_VALID=3,N_ATTENTION=4,N_IMPORTANT=5;var TYPE_CHANNEL="P_TYPE_CHANNEL";var TYPE_HOTLIST="P_TYPE_HOTLIST";var TYPE_NEWS="P_TYPE_NEWS";var TYPE_GLIST="P_TYPE_GLIST";var TYPE_CMSG="P_TYPE_CMSG";var TYPE_COUNT="P_TYPE_COUNT";var TYPE_RATING="P_TYPE_RATING";var TYPE_TOPCMSG="P_TYPE_TOPCMSG";var TYPE_SCMSG="P_TYPE_SCMSG";var TYPE_CMSG_EMBEDDED="P_TYPE_CMSG_EMBEDDED";var EXIST_GET="EXIST";var HTML_GET="HTML";var XML_GET="XML";var SUFFIX_CHANNEL="_channel.xml";var SUFFIX_HOTLIST="_hotlist.xml";var SUFFIX_NEWS="_news.xml";var SUFFIX_GLIST="_glist.xml";var SUFFIX_CMSG="_cmsg_";var SUFFIX_COUNT="_count_";var SUFFIX_RATING="_rating_";var SUFFIX_TOPCMSG="_topcmsg_";var SUFFIX_EMBED="_embed_";var SUFFIX_EMBEDDED_HLIST="_hotlist";var SUFFIX_CONFIG="_config";var XML_FILE=".xml";var JS_FILE=".js";var REQUEST_TAG=0;var undefined;function hex(i){return("0123456789ABCDEF".substring(i,i+1))}function to_hex(i){var c1=hex((0x0000f0&i)>>4);var c2=hex((0x00000f&i)>>0);if(c1!="0"){return(c1+c2)}else{return c2}}function to_unsigned(i){if(i<0){return(i+4294967296)}else if(i>=4294967296){return(i-4294967296)}else{return i}}function strlen(str){if(str==null||str==""){return 0}var newstr=new String(str);return newstr.length}function trim(s){if(s==null||s==""){return""}var Str=new String(s);var newstr=Str.replace(/^\s*/,"");return(newstr.replace(/\s*$/,""))}function substr(str,len){if(str==null||str==""){return""}var buf=new String(str);return(str.substr(0,len))}function uri_encode(str){if(str==null||str==""){return""}var toescape=";/?:@&=+ \"#%<>'`[],~!$^(){}|\\";var newstr="",chr="";for(var i=0;i=ret_len){j=0;if(str.charAt(i)==","||str.charAt(i)=="!"){truncated+="\n"}else{truncated+=" "}}}return truncated}function escape_xml(str,ret_len){if(str==undefined||str==""){return""}if(ret_len==undefined||ret_len==null){ret_len=DEFAULT_RETLEN}var strip_str="";while(strip_str!=str){strip_str=str;str=strip_str.replace(//ig,"
    ")}str=str.replace(/
    /ig,"\n");str=force_return(str,ret_len);str=str.replace(/&/g,"&");str=str.replace(//g,">");str=str.replace(/'/g,"'");str=str.replace(/"/g,""");str=str.replace(/\t/g,"    ");str=str.replace(/\n/g,"
    ");return str}function set_cookie(name,value,expires){if(expires!=undefined&&expires!=""){document.cookie=(name+"="+uri_encode(value)+";expires="+expires)}else{document.cookie=(name+"="+uri_encode(value))}}function get_cookie(cookie){if(cookie==""){return""}var cookies=document.cookie;var pos1=cookies.indexOf(cookie+"=");if(pos1==-1){return""}var pos2=cookies.indexOf(";",pos1);if(pos2==-1){pos2=cookies.length}return(unescape(cookies.substring(pos1+cookie.length+1,pos2)))}function is_ie(){if(navigator.userAgent.toLowerCase().indexOf('msie')>=0){return true}else{return false}}function is_mozilla(){if(navigator.userAgent.toLowerCase().indexOf('gecko')>=0){return true}else{return false}}function is_opera(){if(navigator.userAgent.toLowerCase().indexOf('opera')>=0){return true}else{return false}}function obj(id,doc){if(id==""){return null}if(doc==undefined||doc==""){return document.getElementById(id)}else{return doc.getElementById(id)}}function append_tablerow(table,row){if(table==null||row==""){return}table.insertRow(table.rows.length).insertCell(0).innerHTML=row}function append_select(selection,text,value){var new_opt=new Option(text,value,false,false);selection.options.add(new_opt)}function read_radio(radio){for(var i=0;i0||Filter.rid>0||Filter.length>0){return null}if(Filter.page<1){Filter.page=1}var serial=locate_serial(pages,Filter.page);return(XML_PATH+"/"+uri_encode(Filter.channel)+"/"+hash_path(Filter.newsid)+"/"+Filter.newsid+SUFFIX_CMSG+Filter.group+"_"+serial+XML_FILE)}function cmsg_xml(channel,newsid,group,nice,rid,page,pages){var Filter=new Object();Filter.channel=channel;Filter.newsid=newsid;Filter.group=group;Filter.nice=nice;Filter.rid=rid;Filter.length=0;Filter.page=page;return cmsg_xml_v4(Filter,pages)}function cmsg_cgi_v4(Filter){if(Filter.length>0){Filter.length=FILTER_LENGTH}return(XML_CGI+TYPE_CMSG+"&channel="+uri_encode(Filter.channel)+"&newsid="+uri_encode(Filter.newsid)+"&group="+Filter.group+"&nice="+Filter.nice+"&rid="+Filter.rid+"&length="+Filter.length+"&page="+Filter.page)}function cmsg_cgi(channel,newsid,group,nice,rid,page){var Filter=new Object
      

  5.   

    ();Filter.channel=channel;Filter.newsid=newsid;Filter.group=group;Filter.nice=nice;Filter.rid=rid;Filter.length=0;Filter.page=page;return cmsg_cgi_v4(Filter,pages)}function topcmsg_xml(channel,newsid,group){return(XML_PATH+"/"+uri_encode(channel)+"/"+hash_path(newsid)+"/"+newsid+SUFFIX_TOPCMSG+group+XML_FILE)}function topcmsg_cgi(channel,newsid,group){return(XML_CGI+TYPE_TOPCMSG+"&channel="+uri_encode(channel)+"&newsid="+uri_encode(newsid)+"&group="+group)}function parse_cmsg_item(node){var Cmsg=new Object();Cmsg.m_id=parseInt(xml_node_attr(node,"id"));Cmsg.m_rid=parseInt(xml_node_attr(node,"rid"));Cmsg.m_rank=parseInt(xml_node_attr(node,"rank"));Cmsg.m_status=parseInt(xml_node_attr(node,"status"));Cmsg.m_channel=xml_node_data(node,"channel");Cmsg.m_newsid=xml_node_data(node,"newsid");Cmsg.m_user=xml_node_data(node,"user");Cmsg.m_ip=xml_node_data(node,"ip");Cmsg.m_datetime=xml_node_data(node,"datetime");Cmsg.m_content=xml_node_data(node,"content");Cmsg.m_vote=xml_node_data(node,"vote");Cmsg.n_title=xml_node_data(node,"news_title");Cmsg.n_url=xml_node_data(node,"news_url");Cmsg.s_user=xml_node_data(node,"src_user");Cmsg.s_ip=xml_node_data(node,"src_ip");Cmsg.s_datetime=xml_node_data(node,"src_datetime");Cmsg.s_content=xml_node_data(node,"src_content");Cmsg.s_vote=xml_node_data(node,"src_vote");Cmsg.m_content=trim(Cmsg.m_content);Cmsg.s_content=trim(Cmsg.s_content);Cmsg.m_user=trim(Cmsg.m_user);Cmsg.s_user=trim(Cmsg.s_user);return Cmsg}function parse_cmsg(xml){if(xml==null){return null}return(parse_cmsg_item(xml_node_list(xml,"cmsg")[0]))}function parse_cmsg_list(xml){if(xml==null){return null}var node_list=xml_node_list(xml,"cmsg");var CmsgList=new Array();for(var i=0;i0||Filter.length>0){return null}return(XML_PATH+"/"+uri_encode(Filter.channel)+"/"+hash_path(Filter.newsid)+"/"+Filter.newsid+SUFFIX_COUNT+Filter.group+XML_FILE)}function count_xml(channel,newsid,group,nice,rid){var Filter=new Object();Filter.channel=channel;Filter.newsid=newsid;Filter.group=group;Filter.nice=nice;Filter.rid=rid;Filter.length=0;Filter.page=0;return count_xml_v4(Filter)}function count_cgi_v4(Filter){if(Filter.length>0){Filter.length=FILTER_LENGTH}return(XML_CGI+TYPE_COUNT+"&channel="+uri_encode(Filter.channel)+"&newsid="+uri_encode(Filter.newsid)+"&group="+Filter.group+"&nice="+Filter.nice+"&rid="+Filter.rid+"&length="+Filter.length)}function count_cgi(channel,newsid,group,nice,rid){var Filter=new Object();Filter.channel=channel;Filter.newsid=newsid;Filter.group=group;Filter.nice=nice;Filter.rid=rid;Filter.length=0;Filter.page=0;return count_cgi_v4(Filter)}function parse_count(xml){if(xml==null){return null}var node=xml_node(xml,"count");var Count=new Object();Count.c_count=xml_node_attr(node,"count");Count.c_nice=xml_node_attr(node,"nice");return Count}function get_count_extend(Filter,renderer_prefix,renderer_suffix){var url=count_xml_v4(Filter);if(url!=null){return xmlhttp_async(url,renderer_prefix+"parse_count(xmlhttp.responseXML)"+renderer_suffix,count_cgi_v4(Filter))}else{return xmlhttp_async(count_cgi_v4(Filter),renderer_prefix+"parse_count(xmlhttp.responseXML)"+renderer_suffix)}}function get_count_v4(Filter,renderer){return get_count_extend(Filter,renderer+"(",")")}function get_count(channel,newsid,group,nice,rid,renderer){var Filter=new Object();Filter.channel=channel;Filter.newsid=newsid;Filter.group=group;Filter.nice=nice;Filter.rid=rid;Filter.length=0;Filter.page=0;return get_count_v4(Filter,renderer)}function rating_xml(channel,newsid,group){return(XML_PATH+"/"+uri_encode(channel)+"/"+hash_path(newsid)+"/"+newsid+SUFFIX_RATING+group+XML_FILE)}function rating_cgi(channel,newsid,group){return(XML_CGI+TYPE_RATING+"&channel="+uri_encode(channel)+"&newsid="+uri_encode(newsid)+"&group="+group)}function parse_rating(xml){if(xml==null){return null}var Rating=new Object();var node_list=xml_node_list(xml,"vote");for(var i=0;ito.getTime()){continue}}obj(ad.position).innerHTML=ad.content;obj(ad.position).style.display=""}}function cmnt_embed(channel,newsid,group,page){if(page==undefined||page==null){page=1}if(page<=1){return(V4_HOST+XML_PATH+"/"+uri_encode(channel)+"/"+hash_path(newsid)+"/"+newsid+SUFFIX_EMBED+group+JS_FILE)}else{return(V4_HOST+XML_CGI+TYPE_CMSG_EMBEDDED+"&channel="+uri_encode(channel)+"&newsid="+uri_encode(newsid)+"&group="+group+"&page="+page)}}function cmnt_hotlist(channel,hotid){return(V4_HOST+XML_PATH+"/"+uri_encode(channel)+"/"+uri_encode(hotid)+SUFFIX_EMBEDDED_HLIST+JS_FILE)}function params(location){var url=new String(location);var pos=url.indexOf("?");if(pos==-1){return""}if(url.charAt(url.length-1)=="#"){url=url.substr(0,url.length-1)}return url.substr(pos+1)}function cgi_param(params,name){if(params==""||name==""){return""}var pos1=params.indexOf(name+"=");if(pos1==-1){return""}var pos2=params.indexOf("&",pos1);if(pos2==-1){pos2=params.length}return unescape(params.substring(pos1+name.length+1,pos2))}function _s(str){if(str==null||str==undefined){str=""}document.write(str)}function _o(url,target){window.open(url,target)}function error_page(msg,auto_refresh){if(auto_refresh==null||auto_refresh==undefined){auto_refresh="0"}document.location=(ERRPR_PAGE+"?auto_refresh="+auto_refresh+"&msg="+msg)}function skin_url(skin){return(SKIN_PATH+"/"+skin+".html")}function view_url_v4(Filter,face,hot){var filter_length=0;if(Filter.length>0){filter_length=1}return(V4_HOST+VIEW_CGI+"?channel="+Filter.channel+"&newsid="+Filter.newsid+"&style="+Filter.group+"&nice="+Filter.nice+"&rid="+Filter.rid+"&filter="+filter_length+"&page="+Filter.page+"&face="+face+"&hot="+hot)}function view_url(channel,newsid,style,nice,rid,page,face,hot){if(nice==undefined){nice=0}if(rid==undefined){rid=0}if(page==undefined){page=0}if(face==undefined){face=""}if(hot==undefined){hot=""}var Filter=new Object();Filter.channel=channel;Filter.newsid=newsid;Filter.group=style;Filter.nice=nice;Filter.rid=rid;Filter.length=0;Filter.page=page;return view_url_v4(Filter,face,hot)}function auto_fill(post_form){var nickname=get_cookie("nick");if(nickname!=undefined&&nickname!=null&&nickname!=""){var pos=nickname.indexOf("(");if(pos!=-1){nickname=nickname.substr(0,pos)}post_form.user.value=nickname}}function type_user_name(user,ip){var name="";if(trim(user)==""){name="新浪网友 IP:"+ip}else if(user.search(/WAP:.*/i)!=-1){name="手机用户 "+user.substr(4)+" 手机看新闻"}else if(user.search(/WC:.*/i)!=-1){name="woocall用户 "+user.substr(3)+""}else{name="新浪网友 "+user+""}return name}function get_news_sync(channel,newsid){var url=news_xml(channel,newsid);if(!url_exist(url)){url=news_cgi(channel,newsid)}var xml=xmlhttp_get(url,XML_GET);if(xml==null){return null}return parse_news(xml)}function get_count_sync(channel,newsid,group,nice,rid){var Filter=new Object();Filter.channel=channel;Filter.newsid=newsid;Filter.group=group;Filter.nice=nice;Filter.rid=rid;Filter.length=0;Filter.page=0;var url=count_xml_v4(Filter);if(!url_exist(url)){url=count_cgi_v4(Filter)}var xml=xmlhttp_get(url,XML_GET);if(xml==null){return null}return parse_count(xml)}function get_config_sync(channel,newsid){var xml=xmlhttp_get(config_xml(channel,newsid),XML_GET);if(xml!=null){return(parse_config(xml_node(xml,"config")))}return null}
      

  6.   

    To :xuzuning(唠叨).你上面贴的是什么东西呀?我怎么看不懂呀?
    你是怎么生成这样的代码的呀?
      

  7.   

    To :xuzuning(唠叨).
    你上面的是不是http://comment4.news.sina.com.cn/comment/cmnt_xml.js反编绎过来的代码呀?
    你是怎么做到的呀?
      

  8.   

    以上是http://comment4.news.sina.com.cn/comment/cmnt_xml.js实际生成的js代码弄出来也很简单的:
    eval(function(形参集){函数定义}(实参集))
    这种调用格式的确是要让人迷糊一下的函数定义如下,用于将数据组装成js代码
    function(p,a,c,k,e,d){
    e=function(c){
    return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))
    };
    if(!''.replace(/^/,String)){
    while(c--) d[e(c)]=k[c]||e(c);
    k=[function(e){return d[e]}];
    e=function(){return'\\w+'};
    c=1
    };
    while(c--)
    if(k[c])
    p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
    document.write(p); //只要加上这句,就可以看到代码了
    return p
    }他的压缩算法还是很有意思的,有空研究研究
      

  9.   

    To :xuzuning(唠叨).真是高手呀!
    真是佩服的五体投地呀!
    虽然我还不是很明白你的意思!
    那你的意思是这个JS文件不是用Javascript Obfuscator 2.22加密的?
    是吗?
    问题若解决了,一定再奉上100分。绝不实言!
      

  10.   

    你刚才转通过document.write(p); 转换出来的代码。
    它是怎样转成那种乱码的呀?这是先写成实际的JS程序。再转成eval(function(形参集){函数定义}(实参集))这种格式的?还是先成eval(function(形参集){函数定义}(实参集))再生成可执行的代码的呀?不知道我的表达是否清楚!
    我的意思是:假如我有个JS程序。
    我怎么转成eval(function(形参集){函数定义}(实参集))格式呀?
      

  11.   

    To :xuzuning(唠叨).你的意思是说下面这段程序是新浪的解压程序?function(p,a,c,k,e,d){
    e=function(c){
    return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))
    };
    if(!''.replace(/^/,String)){
    while(c--) d[e(c)]=k[c]||e(c);
    k=[function(e){return d[e]}];
    e=function(){return'\\w+'};
    c=1
    };
    while(c--)
    if(k[c])
    p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
    document.write(p); //只要加上这句,就可以看到代码了
    return p
    }
    而“eval(function(形参集){函数定义}(实参集))”其中“{函数定义}”和"(实参集)"是用JS压缩工具生成的压缩码?
    是这样的吗?
      

  12.   

    当前台调用这个JS文件时。通过那个解压算法,把其中“{函数定义}”和"(实参集)"是用JS压缩工具生成的压缩码再重新解压出来执行!是这样的吗?
      

  13.   

    嗯。高手。真的是十分十分的感谢xuzuning(唠叨) 。等下就结贴。我现在再开一贴,等下发地址。
    你等下到另外一个贴子结分吧。
      

  14.   

    To:xuzuning(唠叨) 
    http://community.csdn.net/Expert/topic/4830/4830574.xml?temp=.1153223
    请到这儿接分。谢谢
      

  15.   

    1000多行。无法在CSDN POSTvar V4_HOST="http://comment4.news.sina.com.cn";
    var XML_CGI="/cgi-bin/comment/page_xml.cgi?type=";
    var VIEW_CGI="/comment/comment4.html";
    var POST_CGI="/cgi-bin/comment/post.cgi";
    var PROXY_CGI="/cgi-bin/comment/xmlhttp_proxy.cgi?url=";
    var SKIN_PATH="/comment/skin";
    var XML_PATH="/comment/xml";
    var ERRPR_PAGE="/comment/error.html";
    var PVLOG_PAGE="/comment/log.html";
    var AD_CONFIG="/comment/adconfig.xml";
    var SUB_COUNT_1=128;
    var SUB_COUNT_2=255;
    var MSGS_PERPAGE=20;
    var DEFAULT_RETLEN=50;
    var FILTER_LENGTH=20;
    var RETRY_DELAY=2000;
    var DEFAULT_SKIN="default";
    var AUTO_REFRESH="1";
    var TOP_FLAG="TOP_FLAG";
    var M_DELETE=2,M_HIDE=4,M_CHECK=8,M_WAIT=16,M_PASS=32,M_NICE=64;
    var N_HIDE=1,N_NOTHOT=2,N_VALID=3,N_ATTENTION=4,N_IMPORTANT=5;
    var TYPE_CHANNEL="P_TYPE_CHANNEL";
    var TYPE_HOTLIST="P_TYPE_HOTLIST";
    var TYPE_NEWS="P_TYPE_NEWS";
    var TYPE_GLIST="P_TYPE_GLIST";
    var TYPE_CMSG="P_TYPE_CMSG";
    var TYPE_COUNT="P_TYPE_COUNT";
    var TYPE_RATING="P_TYPE_RATING";
    var TYPE_TOPCMSG="P_TYPE_TOPCMSG";
    var TYPE_SCMSG="P_TYPE_SCMSG";
    var TYPE_CMSG_EMBEDDED="P_TYPE_CMSG_EMBEDDED";
    var EXIST_GET="EXIST";
    var HTML_GET="HTML";
    var XML_GET="XML";
    var SUFFIX_CHANNEL="_channel.xml";
    var SUFFIX_HOTLIST="_hotlist.xml";
    var SUFFIX_NEWS="_news.xml";
    var SUFFIX_GLIST="_glist.xml";
    var SUFFIX_CMSG="_cmsg_";
    var SUFFIX_COUNT="_count_";
    var SUFFIX_RATING="_rating_";
    var SUFFIX_TOPCMSG="_topcmsg_";
    var SUFFIX_EMBED="_embed_";
    var SUFFIX_EMBEDDED_HLIST="_hotlist";
    var SUFFIX_CONFIG="_config";
    var XML_FILE=".xml";
    var JS_FILE=".js";
    var REQUEST_TAG=0;
    var undefined;
     function hex(i)
    {
    return ("0123456789ABCDEF".substring(i,i+1))
    } function to_hex(i)
    {
    var c1=hex((240&i)>>4);
    var c2=hex((15&i)>>0);
    if(c1!="0")
    {
    return (c1+c2)
    }
    else 
    {
    return c2
    }
    } function to_unsigned(i)
    {
    if(i<0)
    {
    return (i+4294967296)
    }
    else 
    {
    if(i>=4294967296)
    {
    return (i-4294967296)
    }
    else 
    {
    return i
    }
    }
    } function strlen(str)
    {
    if(str==null||str=="")
    {
    return 0
    }
    var newstr= new String(str);
    return newstr.length
    } function trim(s)
    {
    if(s==null||s=="")
    {
    return ""
    }
    var Str= new String(s);
    var newstr=Str.replace(/^\s*/,"");
    return (newstr.replace(/\s*$/,""))
    } function substr(str,len)
    {
    if(str==null||str=="")
    {
    return ""
    }
    var buf= new String(str);
    return (str.substr(0,len))
    }
      

  16.   

    看不懂,顶
    CSDN论坛浏览器:浏览、发帖、回复、结贴自动平均给分,下载地址:http://CoolSlob.ys168.com
      

  17.   

    meizz(梅花雪) ( ) 信誉:709    
    这位大哥 怎么搞出个 钻石 了?