-
-
[原创]2019看雪CTF 晋级赛Q1 第10题
-
发表于: 2019-3-23 13:10 2995
-
private static void a(string[] A_0) { Console.WriteLine("Please Input Serial:"); if (a(Console.ReadLine(), "Kanxue2019") == "4RTlF9Ca2+oqExJwx68FiA==") { Console.WriteLine("Congratulations! : )"); Console.ReadLine(); } }
如果a函数的返回值为 “4RTlF9Ca2+oqExJwx68FiA==”表示成功。看一下a函数,如下:
public static string a(string A_0, string A_1) { byte[] bytes = Encoding.UTF8.GetBytes("Kanxue2019CTF-Q1"); byte[] buffer = Encoding.UTF8.GetBytes(A_0); byte[] rgbKey = new PasswordDeriveBytes(A_1, null).GetBytes(0x20); ICryptoTransform transform = new RijndaelManaged { Mode = CipherMode.CBC }.CreateEncryptor(rgbKey, bytes); MemoryStream stream = new MemoryStream(); CryptoStream stream1 = new CryptoStream(stream, transform, CryptoStreamMode.Write); stream1.Write(buffer, 0, buffer.Length); stream1.FlushFinalBlock(); byte[] inArray = stream.ToArray(); stream.Close(); stream1.Close(); return Convert.ToBase64String(inArray); }
public static string a(string A_0, string A_1) { byte[] bytes = Encoding.UTF8.GetBytes("Kanxue2019CTF-Q1"); byte[] buffer = Encoding.UTF8.GetBytes(A_0); byte[] rgbKey = new PasswordDeriveBytes(A_1, null).GetBytes(0x20); ICryptoTransform transform = new RijndaelManaged { Mode = CipherMode.CBC }.CreateEncryptor(rgbKey, bytes); MemoryStream stream = new MemoryStream(); CryptoStream stream1 = new CryptoStream(stream, transform, CryptoStreamMode.Write); stream1.Write(buffer, 0, buffer.Length); stream1.FlushFinalBlock(); byte[] inArray = stream.ToArray(); stream.Close(); stream1.Close(); return Convert.ToBase64String(inArray); }
看起来是使用标准的.net加密算法进行加密。其中“Kanxue2019”作为秘钥,用户输入作为被加密的数据。
1、将
“Kanxue2019”
转换为utf8字节数据。
(bytes)
2、 将用户输入转换为utf8字节数据。
3、调用 PasswordDeriveBytes函数产生一个rgbKey
4、使用
bytes与
rgbKey 作为输入调用RijndaelManaged产生一个 ICryptoTransform transform
5、new 一个 MemoryStream()
6、new RijndaelManaged,调用CryptoStream 的write进行数据加密
7、将加密后的数据转换成base64,返回。
8、结果为“
“4RTlF9Ca2+oqExJwx68FiA==
”即可。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-3-23 13:14
被ODPan编辑
,原因:
赞赏
他的文章
看原图
赞赏
雪币:
留言: