ichunqiu百度杯-十一月reverse专题
CrackMe 1
第一个题目比较简单, 题目是直接通过取文本消息机制完成,所以我们只要找到关键的消息就好了
我们最终能找到一个叫DefWindowProcW的API,进去后我们会发现
![CrackMe][1]
会发现之类有一个循环的异或以及文本绘制,后者是前者的结果。
我们可以知道Chtext的大概内容
[Cmd-Markdown.exe](./_attachment/Cmd Markdown.exe) ![此处输入图片的描述][2]
但是在异或的过程中,我们并不知道v6的值,但是我们可以爆破,因为是单字节的异或这里好办,只要爆破后的结果有flag就是我们要的答案了。
CrackMe2
第二题挺让人头大的,我一开始因为是简单的AES加解密,后来居然是个迷宫。。。都快吐血了。
大概逻辑是这样的,我们直接在getdlgltemtextA下断点,之后发现程序逻辑是:
先获取内容判断是否为空,然后以16进制的形式保存,然后进入到一个AES解密的地方
![AES][3]
从图中我们可以看到AES的密钥是B1nGzL[4st-TeAm]
AES解密之后又进行了一段base64的解码,然后舍去偶数位只取奇数,并且其Ascii码值不能大于83(S)
之后是查表跳转,紧接着是还有的一大堆操作 先跳过
到最后我们会发现一个迷宫,正确路径的选择是27S281S182S327S287S323Q124S281S1
但是正是因为如果偶数为0x30是不进行循环的,是可能产生多解的。
CrackMe3
第三个是个开关灯游戏,一直觉得和52破解的某个题目特别像,具体想不起来是哪个题目了。
这个题目也产生多解了,
先是计算常量b1ngzl的长度,然后再计算输入长度,然后将两个长度的值与4异或,
然后写入599个dword,进行了9*9 81个循环,每次循环按规则写入5个dword,产生了5个数组或者说矩阵?
就这样吧 反正这个题目多解比第二还多。。。。