Misc就两个字 无语
下载下来是红警2,由于不是exe打开的,因此地图编辑器没用。打开游戏之后发现有个mission,是和
flag有关的,于是用notepad++全局搜一下mission里面的内容,找到ctf-01
其中发现规则是在ctf-01.lua当中,因为难度只有后两个,所以修改一下
然后发现白天只有30s,于是再修改成120s(事实上应该改贼大的一个数)。
然后就基本无敌了,去跑图
flag就在地图标识的那里
SUSCTF{RED_ALERT_WINNER!!!}
得到一张图,文件尾是flag的格式和规则。
去百度一下上面的check nodes和bit nodes
看这篇:https://zhuanlan.zhihu.com/p/20258157
table = [0,1]
for c1 in table:
for c2 in table:
for c3 in table:
for c4 in table:
for c5 in table:
for c6 in table:
for c7 in table:
for c8 in table:
for c9 in table:
for c10 in table:
if(c1^c2^c3^c4 == 0):
if(c1^c5^c6^c7 == 0):
if(c2^c5^c8^c9==0):
if(c3^c6^c8^c10==0):
if(c4^c7^c9^c10==0):
print(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10)
然后用记事本将空格替换成空,再写一个脚本
='''0000000000
0000000111
0000011001
0000011110
0000101010
0000101101
0000110011
0000110100
0011000001
0011000110
0011011000
0011011111
0011101011
0011101100
0011110010
0011110101
0101000010
0101000101
0101011011
0101011100
0101101000
0101101111
0101110001
0101110110
0110000011
0110000100
0110011010
0110011101
0110101001
0110101110
0110110000
0110110111
1001001000
1001001111
1001010001
1001010110
1001100010
1001100101
1001111011
1001111100
1010001001
1010001110
1010010000
1010010111
1010100011
1010100100
1010111010
1010111101
1100001010
1100001101
1100010011
1100010100
1100100000
1100100111
1100111001
1100111110
1111001011
1111001100
1111010010
1111010101
1111100001
1111100110
1111111000
1111111111'''
s = s.split('\n')
tmp = 0
for i in s:
tmp += int(i,2)
print(tmp)
print(bin(tmp))
#111111111100000
将结果sha256之后包裹SUSCTF{}提交
贼无语,整点有意义的吧
频谱可以看见字符串,为AnEWmuLTiPLyis_etimes_wiLLbEcomE_B
SSTV可以看见
但是,这题根本用不到SSTV
然后silenteye解wav,得到一串base。解码得到
207 359 220 224 352 315 359 374 290 310 277 507 391 513 423 392 508 383 440 322 420 427 503 460 295 318 245 302 407 414 410 130 369 317
根据这个稀烂的英语和hint可以知道。他想表达
e*_=B
e是明文,_是参数,B是密文
就tm这样理解
e = 101 _=95
101*95 = 369*26 + 1
因此可以得到flag
s2 = 'AnEWmuLTiPLyis_etimes_wiLLbEcomE_B'
s3 = '207 359 220 224 352 315 359 374 290 310 277 507 391 513 423 392 508 383 440 322 420 427 503 460 295 318 245 302 407 414 410 130 369 317'
s3 = s3.split(' ')
for i in range(len(s2)):
print(chr(round((int(s3[i])*26+1)/ord(s2[i]))),end='')
看不懂也没关系,我也不能理解这道题的用意。
简单文字描述一下
首先wav是浮点类型,在查看wav的文件尾时发现该文件是由AU导出的。
然后发现在后半部分,wav有摩斯电码的声音。
然后发现,wav文件和mp3文件,振幅正好相差一半。
于是使用AU软件,将mp3转成和wav一样的32位浮点(称为wav2)。
然后将wav文件反相(上下),再增大和wav2一样的振幅。
然后将处理后的音频导出,再放进AU看频谱,即可看到非常明显的摩斯。
当然更标准的做法是,使用scipy等库进行操作(因为该wav是32位浮点,wave库没法对其进行操作。)
不想细写是因为不想再做一遍了(
首先用python-exe-unpacker-master+uncompyle6逆python的exe,得到python文件后搜了一下里面
的变量
在f10中有个10011110001101110111100110111001,搜一下发现是tea
SUSCTF{XBvfaEdQvbcrxPBh8AOcJ6gA}