0%

Our 16bits wars

download here

下载一个dos_box 跑一跑,发现是输入flag之后对flag进行操作,之后比较和加密的字符串是否相等 对于每一位字符p ((p>>3)^(p<<5))^0xff 与 数据表中的值相等 然后暴力枚举,爆破。

(这是char变量所以注意&0xff,不然数据溢出)

table=[0xC9, 0x68, 0x8A, 0xC8, 0x6F, 0x07, 0x6, 0xF, 0x7, 0xC6, 0xEB,0x86,0x6E,0x6E, 0x66, 0xAD, 0x4C, 0x8D, 0xAC, 0xEB, 0x26,0x6E, 0xEB, 0xCC, 0xAE, 0xCD, 0x8C, 0x86, 0xAD, 0x66, 0xCD,0x8E, 0x86, 0x8D, 0xAF]
ans=""
for i in range(0x23):
for p in range(32,127):
if ((p>>3)^(p<<5))&0xff==table[i]:
ans+=chr(p)
break
print(ans)