一步步尝试实现CTF中php反序列化的自动分析
<?php
class leiming {
    public $name;
    public function __construct($name) {
        $this->name = $name;
    }
}
if (isset($_GET['data'])) {
    highlight_file(__FILE__);
    unserialize(base64_decode($_GET['data']));
}- 先把源码转化为AST存储
 
- 把 PHP源码以json格式存储 PHPToJson
 
- 对代码进行分析
方案一:直接用ast中的数据- 方案二:把ast中不需要的数据去掉,只保留类名、方法名、参数名、变量名等
 
 
- 获取其中的每一个类 getClass
 -  对每一个类进行处理    processClass
- Method处理 handleMethod
 - Method中的nodes处理 handleMethodNodes
 - 处理方法分开写太乱,等重构到一起写【优先】 allTools