下载代码,用die查壳
发现无壳,且为64位
拖入ida,按shift+f12看字符串
看到base64关键字眼,又看到d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD==具有base64明显特征的字符串
直接去解码
发现很奇怪,应该不是这样
选择try me 那一行,按ctrl+x查看交叉引用
点击ok,按f5反汇编
是base64加密,怎么解不出呢,猜测有可能是换表了
点击base64_encode函数看看源代码
再看看base64_table
表挺正常的
右键查看表的引用,发现了不对劲
多了一个函数,look at you
进入look at you 函数一看,表果然被改了
发现是对base64编码表的前20为进行了前后颠倒
编写代码
a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
a=list(a)
for i in range(10):
b=a[i]
a[i]=a[19-i]
a[19-i] = b
a="".join(a)
print(a)
得到替换后的表TSRQPONMLKJIHGFEDCBAUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
进入网站编码
得到解码结果wctf2020{Base64_is_the_start_of_reverse}
最后将前面换成flag即可
flag{Base64_is_the_start_of_reverse}