题外话:其实在搜索字符串时发现这串字符时,就该想到可能是base64改表加密的
由此关键函数,分析一下,str1与str2要相同,而str2已经赋值,str1是输入的值再经过sub_401260函数后的值。
分析一下函数,这就是base64加密函数阿。每三个字符一取,转换为2进制为24位再对这24位分为4个6位,再分别与63进行与操作。最后还有个’=‘补位,似乎也只有base家族由这种操作了。
但这题表被改了,base64改表加密,知道了这点就可以开始写脚本了
import base64
import string
str1 = "x2dtJEOmyjacxDemx2eczT5cVS9fVUGvWTuZWjuexjRqy24rV29q"
string1 = "ZYXABCDEFGHIJKLMNOPQRSTUVWzyxabcdefghijklmnopqrstuvw0123456789+/"
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
print(base64.b64decode(str1.translate(str.maketrans(string1, string2))))
flag也就出来了: