首页 > 其他分享 >2021楚慧杯 逆向 displacement

2021楚慧杯 逆向 displacement

时间:2023-02-24 17:37:09浏览次数:52  
标签:196 45 displacement flag 238 2021 楚慧杯 175 78

下载附件,得到文件,以txt格式打开:

 

 

 判断为python字节码,手动反编译还原源码:

# a = input('plz input your flag:')
a = ''
b = [0] * len(a)
c = [68, 5, 164, 100, 231, 228, 175, 36, 142, 175, 78, 206, 4, 45, 142, 174, 238, 164, 45, 14, 175, 46, 238, 45, 164,
     174, 36, 175, 45, 196, 196, 78, 175, 36, 46, 238, 196, 206, 78, 78, 68, 39]

if len(a) != 42:
    print("wrong length")

for i in range(len(a)):
    b[i] = (ord(a[i]) >> 3 ^ ord(a[i]) << 5) & 255
    b[i] ^= 136
    if b[i] != c[i]:
        print("wrong")

print("win")

如果能理解pyhon字节码,就是很简单的逻辑,可以查看参考文献

可以简单编写脚本拿到flag:

c = [68,5,164,100,231,228,175,36,142,175,78,206,4,45,142,174,238,164,45,14,175,46,238,45,164,174,36,175,45,196,196,78,175,36,46,238,196,206,78,78,68,39]
flag = []
for i in range(len(flag)):
    flag[i] = c[i] ^ 136
for index in range(len(flag)):
    for i in range(32, 127):
        if flag[index] == ((i >> 3) ^ (i << 5) & 255):
            flag[index] = i
print("".join(chr(x) for x in flag))

标签:196,45,displacement,flag,238,2021,楚慧杯,175,78
From: https://www.cnblogs.com/BlackIce416/p/17152272.html

相关文章