前言
把22年寒假的WP转移到blog上,这次是.NET逆向专题的,原题链接在最底下。
NetRev
先拖到die打开,是net的逆向,下载dotpeek,用dotpeek打开,可以看到源码
主体在Form1里,分析了一下,是利用自己写的Base64类对jacky进行编码,然后取前5位,再用库里的MD5编码,取其中几位组成序列号
直接把关键代码复制粘贴到在线编译器里面,Base64里面的代码也一并粘贴,然后把判断改成赋值输出,代码如下
using System;
using System.ComponentModel;
using System.Security.Cryptography;
using System.Text;
namespace HelloWorldApplication
{
public class Base64
{
public static string EncodeBase64(Encoding encode, string source)
{
byte[] bytes = encode.GetBytes(source);
try
{
return Convert.ToBase64String(bytes);
}
catch
{
return source;
}
}
public static string EncodeBase64(string source) => Base64.EncodeBase64(Encoding.UTF8, source);
public static string DecodeBase64(Encoding encode, string result)
{
byte[] bytes = Convert.FromBase64String(result);
try
{
return encode.GetString(bytes);
}
catch
{
return result;
}
}
public static string DecodeBase64(string result) => Base64.DecodeBase64(Encoding.UTF8, result);
}
class HelloWorld
{
static void Main(string[] args)
{
string str = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(Base64.EncodeBase64("jacky").Substring(0, 5).Trim()))).Replace("-", "");
string text=BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(Base64.EncodeBase64(str.Substring(0, 8) + str.Substring(24, 8)).Trim()))).Replace("-", "").Substring(8, 16).ToLower();
Console.WriteLine(text);
}
}
}
得到序列号为7da005b02cbe3964
验证通过