无壳,32位exe
经典迷宫题,动调找具体逻辑。
具体有三个文件读取,这里有个小tips,他读的是C盘,如果没以管理员身份运行,可能会打不开,我不想以管理员身份运行,就直接将C patch 成 D,D盘开文件限制就小了。
第一个判断,也就是nk.ctf读取的第一个是0x5
第二个判断,nk.ctf读取的是“nkman”
第三个判断,也就是走迷宫的判断,先画出迷宫图
走出来ddssaassdssassddwdddddwdwwwwwdwddsddwdddsssasaawaasassdddddssaaa
动调ida,这段k-=2非常巧妙
将其读取的字节,每两位与3进行与运算,也就是说,读取的16个字符实际是每两位判断一次,共64次,对照上面的迷宫步骤,刚好是64位。
再根据其判断规则,对应
a,w,s,d是3,0,2,1,将上面走的步骤分别替换成数字,4个一组分别写入两位,如:
ddss:1122:01011010:90
并按位异或0x15(v8的值),写入nk.ctf文件
根据题目信息,flag内容位hex(nk.ctf写入的内容)
分三部分:
1.0x5
2.nkman
3.4fef7eb0004415047000bea9eeb043aa(注意异或)
flag:nkctf{056e6b6d616e4fef7eb0004415047000bea9eeb043aa}