0x0EbuuctfWP-2

0x0EbuuctfWP

0x01 [GKCTF2020]BabyDriver(sys文件,键盘扫描码

一个sys文件,无壳,进ida分析,发现两个特殊字符串

image-20210418140047135

判断算法:猜测是一个迷宫

image-20210418140141623

image-20210418140117787

去看另一个特殊的字符串:是个迷宫无误了

image-20210418140208701

但是上下左右对应的字符串并不是ascii编码

由于是sys文件,是由键盘过滤驱动获取键盘扫描码来控制上下左右

https://www.supfree.net/search.asp?id=6386

image-20210418140357034

最后得出路径为LKKKLLKLKKKLLLKKKLLLLLL,flag就是flag{403950a6f64f7fc4b655dea696997851}

0x02 [GKCTF2020]Check_1n

签到题,下载下来是个很有趣的exe

image-20210418140728735

image-20210418140901219

先查壳,无壳,拖到ida中找开机密码

image-20210418140757037

image-20210418140804734

看到strcmp,合理猜测开机密码就是HelloWorld

果不其然可以登进去了

在桌面看到flag.txt文件,然后发现一串base64,解码,是说去玩方块游戏

image-20210418141016904

然后打开桌面上的方块游戏,游戏结束flag就出来了

image-20210418141026120

在ida中也有一串特殊的字符串,但是base64解不开,后来才知道是base58,可以直接解出flag

0x03 [V&N2020 公开赛]strangeCpp

无壳,用ida看

image-20210506152157962

根据关键字符串找到主函数

image-20210506152146219

没有发现什么异常,但是程序无法跑成功,也无法下断点

在前面的putchar中发现了一段数据

image-20210506152308299

调用这段数据的函数如下:

image-20210506152233111

重点在result和红框的异或操作

查看result的生成函数:

有一个小于14549743的值,经过一些操作得到unsigned int类型的v7,赋值给了result,然后result=607052314

image-20210506152133843

编写脚本:

image-20210506153448183

image-20210506153608511

所以flag是e10adc3949ba59abbe56e057f20f883e

ps:一些常用类型字节数

image-20210506152014295