首页 > 代码库 > CTF-reverse-daily(3)-DotNetCrackMe1

CTF-reverse-daily(3)-DotNetCrackMe1

链接: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