ps ui做响应式网站要求,专业行业网站开发报价,做 ps pr 赚钱的 网站,济南建筑公司排名知识点
换表的base64特点#xff1a; 1.出现64个字节的字符串#xff08;其实应该叫做表#xff09;作为数组取值#xff0c;并且#xff08;经常#xff0c;不是一定#xff09;出现“/”和“”符号 2.作为补位#xff0c;体现为对3求余#xff08;%3#xff09;
…知识点
换表的base64特点 1.出现64个字节的字符串其实应该叫做表作为数组取值并且经常不是一定出现“/”和“”符号 2.作为补位体现为对3求余%3
Base64 字典表顺序 Ida打开F5找到加密的点开basekey
解题流程
无壳 一看这个就知道base64的码表肯定被改了然后拖进ida一看 用ida64打开。 基本都是构造函数和析构函数其里一个最显眼的是查找一下 base64Encode(result);base64 的码表估计就藏在里面 看了这个unk_489084
方法一
下面有个码表一看就是base64 的好了上工具 http://web.chacuo.net/netbasex 得到flag{Special_Base64_By_Lich}
方法二
盲猜是换表的base64脚本处理。 贴出脚本
import base64
import stringstr1 mTyqm7wjODkrNLcWl0eqO8K8gc1BPk1GNLgUpI #str1是要解密的代码
string1 AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0987654321/ #string1是改过之后的base64表
string2 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/
print (base64.b64decode(str1.translate(str.maketrans(string1,string2))))
str() 函数将对象转化为适于人阅读的形式。Python maketrans() 方法用于创建字符映射的转换表对于接受两个参数的最简单的调用方式第一个参数是字符串表示需要转换的字符第二个参数也是字符串表示
转换的目标。
注两个字符串的长度需相同为一一对应的关系。
maketrans()方法语法str.maketrans(intab, outtab)
返回值返回字符串转换后生成的新字符串。str.maketrans()方法接受一个或两个参数, 返回一个字典(字典的 key 和 value 均用unicode编码)
1.接受两个参数str.maketrans(str1, str2)
str1, str2均为字符串, 将 str1 和 str2 的元素按次序关系构造成字典, 字典的 key 和 value 均用unicode编码.
intable aeiou
outtable 12345
trantab str.maketrans(intable, outtable)
返回trantab: {97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
2.接受一个参数str.maketrans(dict1)
dict1 为一个字典, 返回一个字典(字典的 key 和 value 均用unicode编码).
parentheses_table str.maketrans({(: None, ): None})
parentheses_table: {40: None, 41: None}Python translate() 方法根据 maketrans() 方法给出的字符映射转换表转换字符串里的字符。
返回根据 maketrans() 方法给出的字符映射转换表转换后的字符串。flag{Special_Base64_By_Lich}