Red de conocimiento informático - Conocimiento informático - ¿Cómo descifrar código sin formato ASP cifrado?

¿Cómo descifrar código sin formato ASP cifrado?

<% @Language="JavaScript" %>

<%

/*

*-------------- - decode.asp ------------------

* Función: recorre todos los archivos del directorio. Decodifica el archivo .asp cifrado

* y escríbelo en el archivo fuente.

* Ejemplo: Descifrar un solo archivo

* Response.Write(DncodeFile(Server.MapPath("conn.asp"));

* Ejemplo: Descifre todos los archivos en el directorio

* DncodeFolderFiles(Server.MapPath("xml"))

* Autor: wanghr100(graybeanbaby.net)

* Hora de actualización: 2004-5-17 11:31

* ----------- ---- decode.asp ------------- - ---

*/

función DncodeFile(sFilePath)

{

/*

* - -------------- DncodeFile(sFilePath) --------------

* DncodeFile(sFilePath)

* Función: abre el archivo sFilePath, Encode descifra y reescribe el archivo.

* Parámetros: sFilePath, cadena, ruta del archivo

* Retorno: sFilePath, ruta del archivo.

* Ejemplo: Response.Write(DncodeFile(Server.MapPath("conn.asp")));

* Autor: wanghr100(GrayBeanBaby.

* Hora de actualización: 2004-5-17 0:58

*--------------- DncodeFile(sFilePath) ----------- ------

*/

var ForReading = 1, ForWriting = 2, ForAppending = 8;

var fso = Server.CreateObject(" Scripting.FileSystemObject");

var f = fso.OpenTextFile(sFilePath,ForReading,true);

sFileText = f. ReadAll();

f .Close();

sDncodeText = strdec(sFileText)

var f = fso.OpenTextFile(sFilePath,ForWriting,true);

f. sDncodeText);

f.Close();

//return sDncodeText;

return sFilePath;

}

función GetFilesPath( sFolderPath)

{

/*

*--------------- GetFilesPath( sFolderPath) -----------------

* GetFilesPath(sFolderPath)

* Función: recorrer todos los archivos en el directorio sFolderPath Regresar. Una matriz. Almacena la ruta del archivo.

* Parámetros: sFolderPath, cadena, ruta absoluta al directorio.

* Ejemplo: Response.Write(GetFilesPath(Server.MapPath("xml")))

* Hora de actualización: 2004-5-12 8:33

* Autor: wanghr100(GrayBeanBaby.net)

*--------------- GetFilesPath(sFolderPath) ------------ - -----

*/

var sFilePath = new Array();

var fso = Server.CreateObject("ScriptObject");< / p>

var fso = Server.CreateObject("ScriptObject");

val += (dígitos[cadena.4)

val += (dígitos[cadena. substr (1,1).charCodeAt(0)] & 0xf) <& lt; 12

val += ((dígitos[string.substr(2,1).charCodeAt(0)] >> 2 ) << 8)

val += ((dígitos[string.substr(2,1).charCodeAt( 0)] & 0x3) << 22)

val + = (dígitos[string.substr(3,1).charCodeAt(0)] <<16)

Valor de retorno

}

Función strdec( encodingString )

{

var marcador = "#@~^"

var stringIndex = 0

var scriptIndex = -1< / p>

var unEncodingIndex = 0

var char = null

var encodingLength = unEncodinglength = 0

var state = STATE_COPY_INPUT

var unEncodingString = ""

var re, arr

while(estado)

{

cambiar (estado)

{

caso (STATE_COPY_INPUT):

scriptIndex = encodingString.indexOf(marker, stringIndex)

if (scriptIndex ! = -1)

{

unEncodingString += encodingString.substring(stringIndex, scriptIndex)

scriptIndex += marcador.length

estado = STATE_READLEN< / p>

}

else

{

stringIndex = stringIndex==0 ?0 : stringIndex

unEncodingString += codificaciónStrin

g.substr(stringIndex, encodingString.length)

estado = 0

}

break

caso (STATE_READLEN): p>

encodingLength = encodingString.substr(scriptIndex, 6)

unEncodinglength = decodeBase64( encodingLength)

scriptIndex += (6 + "==".length)

estado = STATE_DECODE

ruptura

caso (STATE_DECODE):

if (! unEncodinglength)

{

stringIndex = scriptIndex + "DQgAAA==^#~@".length

unEncodingIndex = 0

estado = STATE_COPY_INPUT

descanso

p>

}

char = encodingString.substr(scriptIndex, 1)

if (char == "@") estado = STATE_UNESCAPE

else

{

if (char.CharCodeAt(0) < 0xFF)

{

unEncodingString + = String.fromCharCode(transformed[ pick_encoding[unEncodingIndex% 64]][char.charCodeAt(0)])

unEncodingIndex++

}

else

{

p>

unEncodingString += char

}

scriptIndex++

unEncodinglength--

romper

}

caso STATE_UNESCAPE:

unEncodingString += unescape( encodingString.substr(++scriptIndex, 1))

scriptIndex++; unEncodinglength -=2

unEncodingIndex++

estado = STATE_DECODE

descanso

}

}

re = new RegExp ("(JScript|VBscript).encode", "gmi")

while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext

Devolver unEncodingString

}

/* Finalizar la implementación del descifrado: LiHuangYuan End*/

función DncodeFolderFiles(sFolderPath)

>

{

/*

*--------------- DncodeFolderFiles(sFolderPath) --------- --------

* DncodeFolderFiles(sFolderPath)

* Función: recorrer todos los archivos en el directorio sFolderPath y descifrar el archivo .asp cifrado

* y escríbalos en el archivo fuente.

* Ejemplo: DncodeFolderFiles(Server.MapPath("xml"));

* Autor: wanghr100(greybeansbaby.net)

* actualización:2004- 5-17 8:07

*-------- ------- DncodeFolderFiles(sFolderPath) ----------------- -

*/

var arrFiles = GetFilesPath(sFolderPath)

for(var i=0;i< arrFiles.length;i++)

{

if(GetFileType(arrFiles[i])=="asp")

{

Response.Write(DncodeFile(arrFiles[i ] ))

Response.Write("OK.
")

}

}

}

}

// Obtiene todos los archivos en el directorio xml. Descifrar.

//DncodeFolderFiles(Server.MapPath("xml"))

// Obtener t.asp.

//Response.Write(DncodeFile(Server.MapPath("t.asp")))

%>