Heim  >  Artikel  >  Web-Frontend  >  求解开jscript.encode代码的asp函数_典型特效

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

WBOY
WBOYOriginal
2016-05-16 19:18:19982Durchsuche

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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn