Reverse-Daily(3)-DotNetCrackMe1

Posted on 2016-09-13 10:40  LOMOoO  阅读(321)  评论(0编辑  收藏  举报

链接: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目录下找到生成的程序

6.为了以后不那么麻烦,我就自己写了个带IV的DES加解密工具

http://www.cnblogs.com/lomooo/p/5867959.html