
解密后的内容如下:ob_start('ob_gzhandler');define('tb_root',dirname('D:\temp\τ¼�p').'/');error_reporting(0);if(!file_exists('./go/tbk1kg.lock')){ header("Content-type: text/...

这是一段解密的代码,谁能写出来解密的代码?C#
没细看加密的代码,不过注释上写的是 RC2,如果代码写的对(挂羊头卖狗肉不关我事),那么解密算法是:
public static string RC2Decrypt(string DecryptString, string DecryptKey){ /
/
DecryptString 要解密的密文 /
/
DecryptKey 密钥 if (string.IsNullOrEmpty(DecryptString)) { throw (new Exception("
密文不得为空"
));
} if (string.IsNullOrEmpty(DecryptKey)) { throw (new Exception("
密钥不得为空"
));
} if (DecryptKey.Length 16) { throw (new Exception("
密钥必须为5-16位"
));
} byte[] m_btIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
string m_strDecrypt = "
"
;
RC2CryptoServiceProvider m_RC2Provider = new RC2CryptoServiceProvider();
try { byte[] m_btDecryptString = Convert.FromBase64String(DecryptString);
MemoryStream m_stream = new MemoryStream();
CryptoStream m_cstream = new CryptoStream(m_stream, m_RC2Provider.CreateDecryptor(Encoding.Default.GetBytes(DecryptKey), m_btIV), CryptoStreamMode.Write);
m_cstream.Write(m_btDecryptString, 0, m_btDecryptString.Length);
m_cstream.FlushFinalBlock();
m_strDecrypt = Encoding.Default.GetString(m_stream.ToArray());
m_stream.Close();
m_stream.Dispose();
m_cstream.Close();
m_cstream.Dispose();
} catch (IOException ex) { throw ex;
} catch (CryptographicException ex) { throw ex;
} catch (ArgumentException ex) { throw ex;
} catch (Exception ex) { throw ex;
} finally { m_RC2Provider.Clear();
} return m_strDecrypt;
}
public static string RC2Decrypt(string DecryptString, string DecryptKey){ /
/
DecryptString 要解密的密文 /
/
DecryptKey 密钥 if (string.IsNullOrEmpty(DecryptString)) { throw (new Exception("
密文不得为空"
));
} if (string.IsNullOrEmpty(DecryptKey)) { throw (new Exception("
密钥不得为空"
));
} if (DecryptKey.Length 16) { throw (new Exception("
密钥必须为5-16位"
));
} byte[] m_btIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
string m_strDecrypt = "
"
;
RC2CryptoServiceProvider m_RC2Provider = new RC2CryptoServiceProvider();
try { byte[] m_btDecryptString = Convert.FromBase64String(DecryptString);
MemoryStream m_stream = new MemoryStream();
CryptoStream m_cstream = new CryptoStream(m_stream, m_RC2Provider.CreateDecryptor(Encoding.Default.GetBytes(DecryptKey), m_btIV), CryptoStreamMode.Write);
m_cstream.Write(m_btDecryptString, 0, m_btDecryptString.Length);
m_cstream.FlushFinalBlock();
m_strDecrypt = Encoding.Default.GetString(m_stream.ToArray());
m_stream.Close();
m_stream.Dispose();
m_cstream.Close();
m_cstream.Dispose();
} catch (IOException ex) { throw ex;
} catch (CryptographicException ex) { throw ex;
} catch (ArgumentException ex) { throw ex;
} catch (Exception ex) { throw ex;
} finally { m_RC2Provider.Clear();
} return m_strDecrypt;
}

这段代码被混淆了,有没有高手能帮忙还原出来?
还原后的代码:
public final class a { public static String a(String paramString, int paramInt) { String str1;
if ((paramString == null) || (paramString.length() <
10)) str1 = "
"
;
while (true) { return str1;
int i = paramString.length();
StringBuffer localStringBuffer = new StringBuffer();
String str2;
for (int j = 0;
;
j++) { if (j >
= i /
2) { str2 = localStringBuffer.toString();
String str3 = str2.substring(0, paramInt);
if (paramInt <
= 0) break label151;
str1 = str3 + "
."
+ str2.substring(paramInt, str2.length() - 3) + "
."
+ str2.substring(str2.length() - 3);
break;
} localStringBuffer.append(paramString.substring(1 + j * 2, 2 + j * 2));
} label151:
str1 = str2.substring(paramInt, str2.length() - 3) + "
."
+ str2.substring(str2.length() - 3);
} } }
public final class a { public static String a(String paramString, int paramInt) { String str1;
if ((paramString == null) || (paramString.length() <
10)) str1 = "
"
;
while (true) { return str1;
int i = paramString.length();
StringBuffer localStringBuffer = new StringBuffer();
String str2;
for (int j = 0;
;
j++) { if (j >
= i /
2) { str2 = localStringBuffer.toString();
String str3 = str2.substring(0, paramInt);
if (paramInt <
= 0) break label151;
str1 = str3 + "
."
+ str2.substring(paramInt, str2.length() - 3) + "
."
+ str2.substring(str2.length() - 3);
break;
} localStringBuffer.append(paramString.substring(1 + j * 2, 2 + j * 2));
} label151:
str1 = str2.substring(paramInt, str2.length() - 3) + "
."
+ str2.substring(str2.length() - 3);
} } }
