攻防世界逆向高手题之666
继续开启全栈梦想之逆向之旅~
这题是攻防世界逆向高手题的666
下载附件,扔入exeinfope中查看类型:
64位ELF文件,扔入IDA64中查看伪代码,因为有main函数,所以直接main函数:
判断题目类型,flag是与用户输入有关的明文密文加密型,给了密文(双击跟踪),那么根据加密逻辑函数用密文逆向逻辑解出明文即可,加密逻辑如下:
这逻辑挺简单的,所以直接上脚本即可:
a2="izwhroz\"\"w\"v.K\".Ni"
key=18
v3=""
flag=""
#print(len(a2))
for i in range(0,18,3):
v3=a2[i]
flag+=chr((ord(v3)^key) - 6)
v3=a2[i+1]
flag+=chr((ord(v3)^key) +6)
v3=a2[i+2]
flag+=chr((ord(v3)^key)^6)
print(flag)
这里有一个要注意的地方就是,不能用声明空列表指明索引来接受数据,否则会爆索引超过范围的错误,错误代码如下。
a2=“izwhroz”“w"v.K”.Ni"
key=18
v3=[]
flag=[]
print(len(a2))
for i in range(0,18,3):
v3[i]=a2[i]
flag[i]=(v3[i]^key) - 6
v3[i]=a2[i+1]
flag[i+1]=(v3[i]^key) +6
v3[i]=a2[i+2]
flag[i+2]=(v3[i]key)6
print(flag)
总结:
不能用声明空列表指明索引来接受数据,否则会爆索引超过范围的错误。
解毕!敬礼!