-
-
[原创]看雪CTF第三题crackme解题思路
-
发表于:
2017-10-30 09:39
4671
-
考点我觉得可以分:
(1)patch反调试
(2)base64、morse的解码和sm3的hash
(3)迷宫的绕过
(4)base64解码函数绕过
patch就不多说了,各有各的方法,可以直接暴力nop,也可以构造跳转绕过反调试函数;
IDA载入程序,整理出算法的逻辑是:
(1)对输入的注册码进行两次base64解码,得到摩斯码;
(2)对摩斯码进行解码,得到明文;
(3)对摩斯码进行sm3 hash,得到hash值;
(4)进行第一次验证,取输入的注册码末64位和hash值比较,若相等,进行下一步验证;
(5)进行第二次验证,明文进入迷宫进行判断,能绕过则成功。
我先入手的是第二次验证,构造迷宫的绕过,后来发现绕过方式太多了,说下大概的几种:
(1)输入不含'z', 'l', 'q', 'p';
(2)输入为 'zlzllllzzzppqppzzzlllzlllzllqqpqpqqlqpqqllq' 的子串(从头部开始往后),能走完迷宫(z-->下, l-->右, q-->上 , p-->左);
(3)输入直接为空格‘ ’,在最开始迷宫判断时就结束。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课