感觉 这个题 很玄学 (主要是很多逻辑我还是没有看的很明白)
然后这个题 说实话就是 好玩一点 而且因为这个所谓的好玩 我还给 搜了两份题解
https://www.xctf.org.cn/library/details/af327b4938fc3ae28cfa1f1f044551a6e25b2fbd/
https://www.xctf.org.cn/library/details/2a195fab682c600b5493f42cddd3acb8f4df443a/
其实这个题的 大概步骤我都清楚
但是没有想到的是 我输入的正确答案 竟然没有爆出正确flag
后来想想 莫非 多线程 读写容易出问题吧
看md5 主要是 那四个 常数
然后写脚本
#!/usr/bin/python3
# -*- coding:utf-8 -*-
import string,hashlib
l1 = ['0f59bb02bdbb4647', '5cfce8ec2128acbe', 'ef0375ca659274ad', '27422cc18fb38643', 'a72deca745cc3eb0', 'e8341712fe5f3cbe']
l2 = []
input_str = [0 for x in range(0, 6)]
for i in l1:
temp=''
for j in range(0,len(i),2):
temp=i[j:j+2]+temp
l2.append(temp)
#sstr=string.printable
sstr=string.ascii_letters
for i in sstr:
for j in sstr:
for k in sstr:
for l in sstr:
temp=str(i)+str(j)+str(k)+str(l)
#print(temp)
md_encode=hashlib.md5(temp.encode("utf8")).hexdigest()
for ii in range(len(l2)):
if l2[ii] in md_encode:
input_str[ii]=temp
#print(i)
for i in range(len(l2)):
print(input_str[i],end="")
下断点 在 pthread_mutex_lock(&mutex);
得出flag