[2020meractf]lol.zip

ida分析

字符串定位到 发现有一个 buf 很大的数组。

其他代码很长 看不懂。

buf 的交叉引用 有一个地方 对他进行了 操作,猜测可能是 smc

于是动他查看这个 Buf

发现里面 有个 脚本 于是dump 下来

# cmps={83,80,73,80,76,125,61,96,107,85,62,63,121,122,101,33,123,82,101,114,54,100,101,97,85,111,39,97}
# print("Give Me Your Flag LOL!:")
# flag=io.read()
# if string.len(flag)~=28 then
#     print("Wrong flag!")
#     os.exit()
#     end
#     for i=1,string.len(flag) 
#     do
#     local x=string.byte(flag,i)
#     if i%2==0 then
#         x=x~i   # lu语法的 异或写法
#     else
#         x=x+6
#     end
#     if x~=cmps[i] then
#         print("Wrong flag!")
#         os.exit()
#     end
# end
# print("Right flag!")
# os.exit()
data = [83,80,73,80,76,125,61,96,107,85,62,63,121,122,101,33,123,82,101,114,54,100,101,97,85,111,39,97]
flag = ""
for i in range(len(data)):
    if (i+1)%2==0:
        data[i] ^= (i+1)
    else:
        data[i] -= 6
    flag += chr(data[i])
print flag

# MRCTF{7he_83st_1u@_f0r_yOu!}