¿Cómo descifrar código sin formato ASP cifrado?
<%
/*
*-------------- - 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) p >
{
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> p>
encodingLength = encodingString.substr(scriptIndex, 6)
unEncodinglength = decodeBase64( encodingLength)
scriptIndex += (6 + "==".length) p>
estado = STATE_DECODE
ruptura
caso (STATE_DECODE):
if (! unEncodinglength)
{ p>
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")))
%>