成功函数是sub_401770()
sub_4017F0函数调用成功函数
这个if里调用sub_4017F0函数
写出解密代码
采用爆破手段,得到结果:C0Kk4;g>NLMUB[>VY70WW`,是错的,不知道为什么
data='abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ' a='KanXueCTF2019JustForhappy' out=[] for i in a: out.append(data.index(i)) b=0 for i in out: for j in range(0,128): if(j>57 | j <48): if(j>122 | j<97): if(j>90 | j<65): pass else: b=j-29 else: b=j-87 else: b=j-48 if(b==i): print(chr(j),end='')
逆向修改最后的运算关系,不爆破了,得到正确结果:j0rXI4bTeustBiIGHeCF70DDM
data='abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ' a='KanXueCTF2019JustForhappy' out=[] for i in a: out.append(data.index(i)) for i in out: if 0<=i <=9: print(chr(i+48),end='') elif 9<i <=35: print(chr(i+87),end='') elif i>36: print(chr(i+29),end='')
找到原因了,写python或者的逻辑运算是or 不是| ,在爆破代码里将|改为or即可得到正确flag