X-CTF(REVERSE高级) 流浪者

成功函数是sub_401770()

 

sub_4017F0函数调用成功函数

 

 

这个if里调用sub_4017F0函数

 

 写出解密代码

采用爆破手段,得到结果:C0Kk\4;g>NLMUB\Z[>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

 

posted @ 2020-08-07 00:52  黑冰Lisa  阅读(354)  评论(0编辑  收藏  举报