MeePwn2018
文章目录
image-crackme
想用IDA Pro逆向结果打开到一半就崩溃了,只能靠猜了。试着运行几次image-crackme.exe,发现生成的MeePwn.ascii的内容总是160x160的一大堆乱七八糟的字符,同时目录下还有一个MeePwn.jpg,尺寸同样是160x160,而且缺少这个文件程序就没法运行,推测图片中的像素和输出有某种联系,用画图做了一张160x160的纯白色图片替换了原来的图(为了使所有的像素都相同),然后试着输入0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}
(ASCII48-126)作为key,产生了十分有规律的输出:
这个pattern就很有意思了,可以推测输入的key是被循环扩展到160x160(即ABCDEF->ABCDEFABCDEF…),然后每个字节分别和MeePwn.jpg中对应的像素进行某种运算,才会产生这种循环的输出。
题目提示说flag是MeePwn{…}的形式,可以根据这一特点,用不同长度的flag作为输入,比较输出的MeePwn.ascii和MeePwn.ascii.bak中相同符号的个数,从而得出flag的真正长度。
|
|
结果中key长度为33时相同符号个数明显高于其他(同样高的还有33的因数11),因此flag长度为33,得到这一长度后,只要逐字符爆破就可以了,即比对key中某个字符循环扩展后所在位置上相同符号的个数。
|
|
flag:MeePwn{g0l4ng_Asc11Art_1S_4wS0me}
不得不承认自己和真正的CTF选手还是有很大的差距的,别的题看的一头雾水,毫无思路。