[ACTF新生赛2020]rome.zip

ida 分析

对输入进行处理后比较。

因为是按位操作,所以可以单个字符爆破。

EXP

cmp_data = "Qsw3sj_lz4_Ujw@l"
flag = ""
m = 0
for i in range(16):
    for j in range(33,127):
        m = j
        if j > 64:
            if j <= 90:
                m = (j-0x33) % 26 + 65
        if j > 96:
            if j <= 122:
                m = (j-0x4f) % 26 + 97
        if chr(m)==cmp_data[i]:
            flag += chr(j)

print flag
# Cae3ar_th4_Gre@t