逆向dotnetcrack做法补充

链接: https://blog.csdn.net/ff_aaa/article/details/119086094?spm=1001.2014.3001.5501.
上面链接里面我的做法是采用直接利用网上的工具进行解决,后面在网上搜到解密函数,我针对该题进行了适当的修改,代码如下。

public string Decode(string data)
		{
			string result;
			byte[] byte1;
			try
			{
				byte1 = Convert.FromBase64String("2yyUjXprc1+2TwAbbVU6eQ==");
				byte[] bytes = Encoding.ASCII.GetBytes("gctf{got");
				byte[] bytes2 = Encoding.ASCII.GetBytes("2niceday}");
				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 = "";
			}
			return result;
		}     

解密函数可对string data按照该题的加密方式进行逆向解密。那么只需要动一下显示函数,让条件不成立的时候不输出错误提示,而是输出解密后的结果。

private void button1_Click(object sender, EventArgs e)
		{
			if ("2yyUjXprc1+2TwAbbVU6eQ==" == Encode(textBox1.Text))
			{
				MessageBox.Show("Congratulation~!!");
			}
			else
			{
				MessageBox.Show(Decode(textBox1.Text));
			}
		}

这样在弹出的提示框里面输入密文,那么就弹出明文。
在这里插入图片描述
结果和链接里面直接求解的做法得到的结果一致。正确。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值