题目链接:https://buuoj.cn/challenges#SimpleRev
把题目拖进IDA64里,找到main函数,按F5得到伪代码
跟进这个Decry()函数
分析一下这个函数
key3:kills
key1:ADSFK
由于IDA里是小端存储,所以"text"是"killshadow",“key"是"ADSFKNDCLS”
下面for循环把"key"中的大写全部换成了小写,然后把flag和key经过处理,要和str2一样,才是对的flag
写个脚本跑一下
text = "killshadow"
key = "ADSFKNDCLS"
key1 = ""
flag = ""
for i in key:
key1 += chr(ord(i) + 32)
v3 = 0
v5 = len(key1)
for i in range(len(text)):
for j in range(10):
str = ord(text[i]) - 97 + 26*j - 97 + ord(key1[v3 % v5]) + 39
if(str>=65 and str<=90 or str>=97 and str<=122):
flag += chr(str)
break
v3 += 1
print(flag)
flag:KLDQCUDFZO