栏目介绍
这个栏目是负责写,比较难的Misc,日常记录,如果有错误请及时指出。谢谢
Python 3.7版本
脚本临时学的可能没有那么完美,自己码出来还有很大问题,请见谅。
这一题目研究的比较久,现在详细的说一下:
本题要点就是python 序列化内容的存入。
至于序列化是啥:
Python中的Pickle模块实现了基本的数据序列与反序列化。 一、dump()方法 pickle.dump(obj, file,
[,protocol])
注释:序列化对象,将对象obj保存到文件file中去。参数protocol是序列化模式,默认是0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和2表示以二进制的形式进行序列化。其中,1是老式的二进制协议;2是新二进制协议)。file表示保存到的类文件对象,file必须有write()接口,file可以是一个以’w’打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象。
二、load()方法 pickle.load(file)
注释:反序列化对象,将文件中的数据解析为一个python对象。file中有read()接口和readline()接口转自:https://blog.csdn.net/Yangxing_ch/article/details/105492762
只要明白,他把序列话存进去,我们现在要把它提取出来,所以我们先进行第一部操作,寻找图片中的序列化
当中我们找到jpg的结尾FFD9
大概能知道,后门都是序列化文件了。我们把他复制出来全部粘贴出来
就会是一堆看不懂的序列化文件,我们通过脚本转换一下
import pickle fp = open("2.txt","rb+") ''' 打开序列化文件 ''' fw = open('pickle.txt', 'w') ''' 打开保存文件 ''' a=pickle.load(fp) ''' 反序列化文件编译 ''' pickle=str(a) ''' 转换成字符串要不然不能保存 ''' fw.write( pickle ) ''' 写入文件 ''' fw.close() ''' 关闭文件 ''' fp.close() ''' 关闭文件 '''
成功获得坐标代码,然后使用脚本跑一下
fw = open("pickle.txt","r") text=fw.read( ) i=0 a=0 while i<len(text)+1: if(text[i]==']'): print(' ') a=0 elif(text[i]=='('): if(text[i+2]==','): b=text[i+1] d=text[i+1] b=int(b)-int(a) c=1 while c<b: print(" ", end="") c += 1 print(text[i+5], end="") a=int(d) else: b=text[i+1]+text[i+2] d=text[i+1]+text[i+2] b=int(b)-int(a) c=1 while c<b: print(" ", end="") c += 1 print(text[i+6], end="") a=int(d) i +=1
描一下
flag{a273fdedf3d746e97db9086ebbb195d6}
感谢大家浏览,要是有帮助点个赞呗~谢谢惹