先查壳
32位,无壳,拖入ida
按shifit+f12找字符串
发现可疑字符串,点进去,按ctrl+x交叉引用
在按f5反汇编
source为我们输入的,被赋值给了destination
并且对destination进行了sub_4115FF操作,最后如果destination满足sub_411433则正确
点击sub_4115FF,发现是重叠函数,继续点进sub_4128A0函数
发现是对每一位进行异或
点击sub_411433函数,发现也是重叠函数,继续点进去
v9是一串数字,v6是字符串,v4=v6+str(也就是输入的)
最后如果v4=v9,就成功
编写代码
v9=[149,169,137,134,212,188,177,184,177,197,192,179,153,167,186,172,164,174,103,184,0,0,0,0,0,0,0,0,0,0]
v6="LWHFUENGDJGEFHYDHIGJ"
for c in range(len(v6)):
for i in range(127):
i1=i
i1^=c
v4 = i1 + ord(v6[c])
if v4 == v9[c]:
print(chr(i), end="")
得到结果ISCC{reverse_RogLt2}