X-CTF(REVERSE高级) 666

主函数输入的字符会和key对照长度和enflag对照内容,以是这道题的flag和输入有关

X-CTF(REVERSE高级) 666

 

 key长度为0x12,enflag的值为:izwhroz””w”v.K”.Ni

X-CTF(REVERSE高级) 666

 

基于VUE实现的h5网页Web出库单入库单打印设计

 X-CTF(REVERSE高级) 666

 

 对输入举行加密的函数,首先对照输入长度是否为0x12,然后以三个数字为一组,每组为一个循环,举行加密。

X-CTF(REVERSE高级) 666

 

 准确的输入经由加密即是enflag,以是对enflag的值举行逆向盘算可以获得准确的输入(flag),代码如下

key=[]
s="izwhroz\"\"w\"v.K\".Ni"
for i in s:
          key.append(i)
print("key:",key)
#key.reverse()
flag=''

for j in range(0,18,3):
          flag += chr((ord(key[j])^18)-6)

          flag += chr((ord(key[j+1])^18)+6)

          flag += chr(ord(key[j+2])^18^6)
          print(key[j])


print(flag)

有一个坑是+号的优先级大于^,在第一次运算没有给ord(key[j])^18这样的^运算加上小括号获得了错误效果,纠结了良久那里写错了。

原创文章,作者:dddof新闻网,如若转载,请注明出处:https://www.dddof.com/archives/11103.html