标签:
链接:http://pan.baidu.com/s/1cuYQhK 密码:zjx6
这是一个用c#编写的程序
用dotpeek或者ILSPY反编译可以看到程序结构,主体比较简单,是一个des加密算法
这是一个带向量的DES加密程序,key是wctf{wol,iv向量是dy_crack},密文是fOCPTVF0diO+B0IMXntkPoRJDUj5CCsT
现在要做的就是对他进行反向解密拿到明文,坑爹的网上现成的des解密工具都是不带向量的,带向量的只有代码
好吧,现在就只有对源程序进行修改了,由于之前没怎么用过vs2015,所以花了我很长时间
1.首先保存原项目,这里最好用ILSPY,我用dotpeek保存项目好像不行,需要如图选中顶层项目进行保存
2.接着打开vs,打开项目,文件后缀名为csproj,可以在vs右边开到项目已打开,接着打开代码
3.下一步就要修改原程序了,我那个是那个随便搜一搜c#des解密代码,在对源程序进行修改,修改代码如下:
private void button1_Click(object sender, EventArgs e) { MessageBox.Show(DESDecrypt(flag, KEY_64, IV_64)); } public static string DESDecrypt(string data, string key, string iv) { byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(key); byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(iv); byte[] byEnc; try { byEnc = Convert.FromBase64String(data); } catch { return null; } DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider(); MemoryStream ms = new MemoryStream(byEnc); CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read); StreamReader sr = new StreamReader(cst); return sr.ReadToEnd(); }
4.接着按vs的启动按钮,可以发现程序能够正确运行出flag
5.这时不用发布程序之类的,可以直接在项目的\bin\debug目录下找到生成的程序
CTF-reverse-daily(3)-DotNetCrackMe1
标签:
原文地址:http://www.cnblogs.com/lomooo/p/5867568.html