unserialize反序列化错误的解决办法

Posted 次瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unserialize反序列化错误的解决办法相关的知识,希望对你有一定的参考价值。

1. UTF-8编码解决反序列化出错问题

function mb_unserialize($serial_str) {
    $serial_str = str_replace("\r", "", $serial_str);
    $serial_str = preg_replace(!s:(\d+):"(.*?)";!se, "‘s:‘.strlen(‘$2‘).‘:\"$2\";‘", $serial_str );
    return unserialize($serial_str);
}

2.ASC编码解决反序列化出错问题 

function asc_unserialize($serial_str) {
 $serial_str= str_replace("\r", "", $serial_str);
 $serial_str = preg_replace(!s:(\d+):"(.*?)";!se, "s:".strlen("$2").":\"$2\";", $serial_str );
 return unserialize($serial_str);
}

 

以上是关于unserialize反序列化错误的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Android Parcelable反序列化报错笔记:java.lang.RuntimeException: Unmarshalling unknown type code at offset(代码片

序列化serialize()与反序列化unserialize()的实例

XCTF-攻防世界CTF平台-Web类——10unserialize3(反序列化漏洞绕过__wakeup()函数)

XCTF-unserialize3

PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法

XCTF unserialize3