首頁  >  文章  >  web前端  >  求解开jscript.encode代码的asp函数_典型特效

求解开jscript.encode代码的asp函数_典型特效

WBOY
WBOY原創
2016-05-16 19:18:19982瀏覽

javascript函数已经有了,有没有Asp的函数???   
  或者有没有高手可以把下面的写成asp的   ,万分感谢~!! 

 

复制代码 代码如下:

 <script> <BR> <!-- <BR> function toEncode(s,l) <BR> {enc=new ActiveXObject("Scripting.Encoder"); <BR> return enc.EncodeScriptFile("."+l,s,0,l+"cript"); <BR> } <br><br> <BR> var STATE_COPY_INPUT = 100 <BR> var STATE_READLEN = 101 <BR> var STATE_DECODE = 102 <BR> var STATE_UNESCAPE = 103 <br><br> var pick_encoding = new Array( <BR> 1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0, <BR> 1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2, <BR> 1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2, <BR> 1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2 <BR> ) <br><br> var rawData = new Array( <BR> 0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72, <BR> 0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C, <BR> 0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43, <BR> 0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63, <BR> 0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79, <BR> 0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B, <BR> 0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D, <BR> 0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F, <BR> 0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E, <BR> 0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77, <BR> 0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78, <BR> 0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67, <BR> 0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22, <BR> 0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A, <BR> 0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C, <BR> 0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25, <BR> 0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28, <BR> 0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36, <BR> 0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E, <BR> 0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09, <BR> 0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D, <BR> 0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37, <BR> 0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E, <BR> 0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F <BR> ) <br><br> var transformed = new Array() <BR> for (var i=0; i<3; i++) transformed[i] = new Array() <BR> for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : i <br><br> var digits = new Array() <BR> for (var i=0; i<26; i++) <BR> { <BR> digits["A".charCodeAt(0)+i] = i <BR> digits["a".charCodeAt(0)+i] = i+26 <BR> } <BR> for (var i=0; i<10; i++) digits["0".charCodeAt(0)+i] = i+52 <BR> digits[0x2b] = 62 <BR> digits[0x2f] = 63 <br><br> function unescape(char) <BR> { <BR> var escapes = "#&!*$" <BR> var escaped = "\r\n<>@" <br><br> if (char.charCodeAt(0) > 126) return char <BR> if (escapes.indexOf(char) != -1) return escaped.substr(escapes.indexOf(char), 1) <BR> return "?" <BR> } <br><br> function decodeBase64(string) <BR> { <BR> var val = 0 <BR> val += (digits[string.substr(0,1).charCodeAt(0)] << 2) <BR> val += (digits[string.substr(1,1).charCodeAt(0)] >> 4) <BR> val += (digits[string.substr(1,1).charCodeAt(0)] & 0xf) << 12 <BR> val += ((digits[string.substr(2,1).charCodeAt(0)] >> 2) << 8) <BR> val += ((digits[string.substr(2,1).charCodeAt(0)] & 0x3) << 22) <BR> val += (digits[string.substr(3,1).charCodeAt(0)] << 16) <BR> return val <BR> } <br><br> function tranEncode(encodingString) <BR> { <br><br> var marker = "#@~^" <BR> var stringIndex = 0 <BR> var scriptIndex = -1 <BR> var unEncodingIndex = 0 <BR> var char = null <BR> var encodingLength = unEncodinglength = 0 <BR> var state = STATE_COPY_INPUT <BR> var unEncodingString = "" <BR> var re, arr <br><br> while(state) <BR> { <BR> switch (state) <BR> { <BR> case (STATE_COPY_INPUT) : <BR> scriptIndex = encodingString.indexOf(marker, stringIndex) <BR> if (scriptIndex != -1) <BR> { <BR> unEncodingString += encodingString.substring(stringIndex, scriptIndex) <BR> scriptIndex += marker.length <BR> state = STATE_READLEN <BR> } <BR> else <BR> { <BR> stringIndex = stringIndex==0 ? 0 : stringIndex <BR> unEncodingString += encodingString.substr(stringIndex, encodingString.length) <BR> state = 0 <BR> } <BR> break <br><br> case (STATE_READLEN) : <BR> encodingLength = encodingString.substr(scriptIndex, 6) <BR> unEncodinglength = decodeBase64(encodingLength) <BR> scriptIndex += (6 + "==".length) <BR> state = STATE_DECODE <BR> break <br><br> case (STATE_DECODE) : <BR> if (!unEncodinglength) <BR> { <BR> stringIndex = scriptIndex + "DQgAAA==^#~@".length <BR> unEncodingIndex = 0 <BR> state = STATE_COPY_INPUT <BR> break <BR> } <BR> char = encodingString.substr(scriptIndex, 1) <BR> if (char == "@") state = STATE_UNESCAPE <BR> else <BR> { <BR> if (char.charCodeAt(0) < 0xFF) <BR> { <BR> unEncodingString += String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)]) <BR> unEncodingIndex++ <BR> } <BR> else <BR> { <BR> unEncodingString += char <BR> } <BR> scriptIndex++ <BR> unEncodinglength-- <BR> break <BR> } <br><br> case STATE_UNESCAPE: <BR> unEncodingString += unescape(encodingString.substr(++scriptIndex, 1)) <BR> scriptIndex++; unEncodinglength -=2 <BR> unEncodingIndex++ <BR> state = STATE_DECODE <BR> break <BR> } <BR> } <br><br> re = new RegExp("(JScript|VBscript).encode", "gmi") <BR> while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext <BR> return unEncodingString <BR> } <BR> //--> <BR> </script>

asp 不等于 vbs, 只是个框架而已
这段代码你在 script 里加个 runat="server" 然后直接调用这个函数就可以了
<script>... <BR><% <BR>toEncode(xxx) <BR>%> </script>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn