攻防世界-debug
PEID查 .NET 直接ilspy反编译,很直观的代码。理清逻辑。
主函数:
经过一个函数(函数名乱码)对字符串变量a_进行变换,并将结果存入b中,最后将输入与b比较。
函数二:
依次取字符串的每个字符,并通过某函数(函数三)进行转换,每个字符循环变换14次。最后对变换后的字符串进行md5加密(函数四)
函数三:
刚开始没看清A_1有中括号,以为是从1到14直接异或。其实是与数组下标1到15的数值进行异或。
函数四:
都是系统函数,进行md5加密。
给出python解密代码:
import hashlib
s = "CreateByTenshine"
s1 = [3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
result = ""
for i in s:
x = i
for j in range(14):
x = chr(int(ord(x)) ^ s1[j])
result += x
a = hashlib.md5()
a.update(result.encode(encoding='utf-8'))
print("flag{"+a.hexdigest()+"}")
本题只要知道使用什么工具就会非常简单。最后发现一个更简单的,秒解。
dnspy打开,下断点,直接运行,flag就出来了。太强了。。。
flag只能提交大写,emmmmmm