-
-
[原创]看雪CTF 2017年秋季赛 第三题 writeup
-
发表于: 2017-10-29 08:47 2916
-
这一题的核心在于绕过反调试来进行动态调试。
作者写了很多的反调试,总体的感觉在于都过于集中,很容易就绕过了。
每一块反调试都是 粗粗一看就能够 猜出这一块就是反调试。
程序没有完整性检测,nop掉这类反调试区域依旧能够调试
程序是静态编译的,部分算法比较难以识别
程序刚开始进行了两次base64解密,然后又分为两部分
一是根据解密后的字符串,来进行类似莫斯电码的解密。。
并且会对两次base64解密之后的字符串进行一次 前三位的sm3哈希求值。
刚开始看到这个的时候以为需要爆破hash..后来则不是
第一个验证环节是使用 sm3哈希值与输入未进行base64解密的参数进行比对,要全部相同才可以。
第二个环节是一个迷宫,&unk_49B000
处的数值就是一张迷宫
然后
--..z
.-..l
.--.p
--.-q
分别为下右左上
而 zlzllllzzzppqppzzzlllzlllzllqqpqpqqlq
能到程序意图中的 x=8,y=3
然而 程序有一个bug 就是 遇到 空格就会跳出循环,,就是说 如果 不走迷宫 也是一样能够过的 只需要空格即可
所以我在验证的时候 输入的是 zlzllllzzzppqppzzzlllzlllzllqqpqpqqlq
(因为最终的注册码不能有=的出现,所以多加了个空格)
转为 莫斯电码为
--.. .-.. --.. .-.. .-.. .-.. .-.. --.. --.. --.. .--. .--. --.- .--. .--. --.. --.. --.. .-.. .-.. .-.. --.. .-.. .-.. .-.. --.. .-.. .-.. --.- --.- .--. --.- .--. --.- --.- .-.. --.- //
得到的注册码为TFMwdUxpQXVMUzR1SUMwdExpNGdMaTB1TGlBdUxTNHVJQzR0TGk0Z0xpMHVMaUF0TFM0dUlDMHRMaTRnTFMwdUxpQXVMUzB1SUM0dExTNGdMUzB1TFNBdUxTMHVJQzR0TFM0Z0xTMHVMaUF0TFM0dUlDMHRMaTRnTGkwdUxpQXVMUzR1SUM0dExpNGdMUzB1TGlBdUxTNHVJQzR0TGk0Z0xpMHVMaUF0TFM0dUlDNHRMaTRnTGkwdUxpQXRMUzR0SUMwdExpMGdMaTB0TGlBdExTNHRJQzR0TFM0Z0xTMHVMU0F0TFM0dElDNHRMaTRnTFMwdUxTQXZMdz09b92a72497b685c31013347a7276f371f8cf91085ab8322009bfed2df41d94f94
但是实际上只需要空格就可以了
简单的///////
就可以了
得到零一组解为 THk4dkx5OHZMdz099aa4f168af9fcb372825d2e817379ab6ad4a7da973a38c44a0ec56a788dfb89b
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)