这是做逆向的第一题,一个好友转安全之后发我的一个题目,程序名称是dotnetcrack.exe。点开一看。提示框如下。
当时一看,豁~,真的非常简单,差点我就相信这鬼话了。还是尝试一下,随便输入一串字符串。果不其然,报错。
遇到这种情况,在网上找了一些资料之后,使用一款名为ILSPY的工具进行反编译。使用它打开程序。反编译后是熟悉的高级语言代码,之前使用IDA,OD看了太多汇编代码了,突然泪目。
经过分析,这个逻辑判断是"2yyUjXprc1+2TwAbbVU6eQ==" == Encode(textBox1.Text),当时看到这个条件,我就想把 等号改为不等号,这样无论输入什么,都会是正确的提示,除非手欠直接输入正确的字符串。
然后尝试了一下,因为ILSPY不能直接修改代码,于是把代码保存出来,然后修改一下。
接下来随便输入都是正确的提示了。
当然这不是题目原意,还得继续探究,目前需要了解Encode里面对我们输入的字符串干了什么,发现使用了DES加密再用Base64编码,密钥是gctf{got,偏移是2niceday},那么直接使用网上现成的工具就可以解密了。
最后得出的密文是H0lyTru3EasY。输入尝试,正确。