首页
社区
课程
招聘
[原创]看雪CTF 2017年秋季赛 第三题 writeup
发表于: 2017-10-29 08:47 2916

[原创]看雪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期)

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//