根据题目名提示hook,用ida打开查看伪代码,发现sub_401220函数中hook了writefile函数,加密算法在 sub_401000中
根据算法逆推回来就能得到结果,复制字符串时候复制错了,浪费了很长时间检查算法是否有误。。。
需要注意单引号和逗号,7Fh在字符串中可以写成\x7F
# encoding=utf-8 s = "1234567890123456789" flag = '' for i in range(18): if (i % 2): flag += chr(i ^ (ord(s[i]) - i)) else: flag += chr(i ^ (ord(s[i + 2]))) flag += chr(ord(s[18]) ^ 0x13) print flag #c = "307234?69.9,9*9()6*" c = "ajygkFm.\x7f_~-SV{8mLn" c = list(c) for i in range(17, -1, -1): v3 = i ^ ord(c[i]) if i == 18: c[i] = ord(c[i]) ^ 0x13 if i % 2: c[i] = chr(v3 + i) else: c[i + 2] = chr(v3) print ''.join(c)
flag{Ho0k_w1th_Fun}