下载下来是一个.Net文件,用ILSpy逆向,发现没加密,找到Form的代码
public string Encode(string data)
{
string result;
try
{
byte[] bytes = Encoding.ASCII.GetBytes("wctf{wol");
byte[] bytes2 = Encoding.ASCII.GetBytes("dy_crack}");
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
int keySize = dESCryptoServiceProvider.KeySize;
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateEncryptor(bytes, bytes2), CryptoStreamMode.Write);
StreamWriter streamWriter = new StreamWriter(cryptoStream);
streamWriter.Write(data);
streamWriter.Flush();
cryptoStream.FlushFinalBlock();
streamWriter.Flush();
result = Convert.ToBase64String(memoryStream.GetBuffer(), 0, (int)memoryStream.Length);
}
catch
{
result = "http://weibo.com/woldy";
}
return result;
}
对比的字串是“fOCPTVF0diO+B0IMXntkPoRJDUj5CCsT”
写个解码的算法
public string Decode(string data)
{
string result;
byte[] byte1;
try
{
byte1 = Convert.FromBase64String("fOCPTVF0diO+B0IMXntkPoRJDUj5CCsT");
byte[] bytes = Encoding.ASCII.GetBytes("wctf{wol");
byte[] bytes2 = Encoding.ASCII.GetBytes("dy_crack}");
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateDecryptor(bytes, bytes2), CryptoStreamMode.Write);
cryptoStream.Write(byte1, 0, byte1.Length);
cryptoStream.FlushFinalBlock();
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
result = encoding.GetString(memoryStream.ToArray());
}
catch
{
result = "http://weibo.com/woldy";
}
return result;
}
解码得到wctf{dotnet_crackme1}
提交,通过!