首先第一个就是概念。第二个是他的利用,一个好用的工具ysoserial,主要用来生成工具的paload,修复大差不差。
#概念:我们有时候需要保存某一个对象的信息,会进行一些操作,类似于反序列化,序列化的过程中的对象,就是我们所说的class的状态以二进制储存到文件的系统中,然后另外一个系统对这个二进制进行读取,再来还原,如下图这样
序列化那段英文字母的意思是,写入对象
反序列化英文字母意思,读取对象
就相当于序列化就是把序列的字节写到输出流里面
反序列化就是把源输出流里面转换成一个对象
类似于存档,读档吧,跟php一样的相互转换
序列化:将对象的状态信息转换为可以储存或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性储存区。
反序列化:从储存区中读取该数据,并将其还原为对象的过程,称为反序列化。
##简单的java代码演示
将对象person序列化之后写入到d盘里面person.txt文件里面。使用到了oos.write0bject(person)去写入。
这个代码就是读取那个文本对他进行还原。
一个就是将数据写到对应的文件,一个是将文件进行读取进行还原。
我先只执行序列化,看一下储存文件
这个就是对象序列化之后的样子。
然后在打开反序列化,执行一下,输出反序列化之后的值
就转换为了原来的对象。
s
s