currwin 发表于 2014-11-4 12:41

【吾爱破解2014CrackMe大赛】【第十四组】

      第四届52CM大赛的最后一个cm出来了。
      防守方是大魔王苏紫方璇,攻击方乃各方勇者。那么,到底谁才能拿到最后的宝物呢?让我们拭目以待吧。
      算法莫名的简单,看来是大魔王放水了,既然如此,就勇敢的上吧。直接看c代码比较好
      我以其中一组解锁码为例:
key:6B1B054A-1C16FC351F2FFBFB2
   通过 - 分割解锁码,得到两个字符串:
str1:6B1B054A                   (长 0x8)
str2:1C16FC351F2FFBFB 2 (长 0x8*2 + 1)
       str2 转换为文本数组,具体就是转为:
str3 = {0x1C,0x16, 0xFC, 0x35, 0x1F, 0x2F, 0xFB, 0xFB}(长0x8)
       最后一个字符转换为 0x02 * 34 = 0x44 = EncryKey
定义两个加密常量:
staticKey1 = {0x1A, 0x0C, 0x2D, 0x1C, 0x0F, 0x0D, 0x3E, 0x01}(长0x8)
staticKey2 = {0x0D, 0x3A, 0x2D, 0x21, 0x11, 0x14, 0x08, 0x25}   (长0x8)
      最终,进行下列运算
for(i = 0; i < 8; i++)
   string = str1 + str3 + staticKey1 + staticKey2 + EncryKey;
如果
    string = {0xBD, 0xE2, 0xCB, 0xF8, 0xB3, 0xC9, 0xB9, 0xA6}//ASCII 解码成功
则该key就是正确的。
   keygen已经附上,哈哈,这样一来,对于我来说,CM大赛就结束了。终于结束了啊,持续了2个星期,多少也是有点累啊。

currwin 发表于 2014-11-4 12:43

    郁闷了,有些c的格式貌似被吃了,好吧,说明一下,最后进行string计算的应该是
for(i = 0; i < 8; i++)
   string = str1 + str3 + staticKey1 + staticKey2 + EncryKey;

Kido 发表于 2014-11-6 20:49

最终得分:175
评委评价:有效

hewap 发表于 2016-4-16 19:26

楼主牛逼!学习了!

lhpmain 发表于 2016-4-17 01:02

最后一个字符转换为 0x02 * 34 = 0x44 = EncryKey
为什么是这个?

84583728 发表于 2016-4-19 16:41

现实、太假 发表于 2017-5-28 17:07

那就休息休息,继续参加下一届

男人必须荇 发表于 2017-6-10 15:31

好厉害的样子
页: [1]
查看完整版本: 【吾爱破解2014CrackMe大赛】【第十四组】