时溢:修订间差异
来自Limbo Wiki
(创建页面,内容为“{{欢迎编辑}}{{诈骗}} “时溢”是一个PhigrOS底层的程序漏洞,表现为错误时间日期输入下的算法异常。 == 简介 == “时溢”是一个有关底层time库和random库的漏洞。 当尝试向time库中的类Datetime传入超出范围的日期(例如:3月32日、5月-29日,4月-365日等),仍然可以在不报错的情况下产生Datetime对象,并且该Datetime对象的所有方法均可正常使用。但是,…”) 标签:(旧)WikiEditor |
小 (好的 是我唐突了) 标签:(旧)WikiEditor |
||
第1行: | 第1行: | ||
{{欢迎编辑}}{{诈骗}} | {{欢迎编辑}}{{诈骗}} | ||
“时溢”是一个■■■底层的程序漏洞,表现为错误时间日期输入下的算法异常。 | |||
== 简介 == | == 简介 == |
2023年3月30日 (四) 14:07的版本
欢迎您参与完善本页面~
林泊百科祝您在像素塔度过愉快的时光。 |
诈骗条目
本条目仅出于幽默感而保留。
认真你就输了! |
“时溢”是一个■■■底层的程序漏洞,表现为错误时间日期输入下的算法异常。
简介
“时溢”是一个有关底层time库和random库的漏洞。
当尝试向time库中的类Datetime传入超出范围的日期(例如:3月32日、5月-29日,4月-365日等),仍然可以在不报错的情况下产生Datetime对象,并且该Datetime对象的所有方法均可正常使用。但是,若将异常对象传入random库的部分函数,则超限的时间会引起随机数生成异常,并可能导致一些使用随机效果的程序出现错误。
原理猜想
Datetime类用于表示日期时间,其构造函数参数列表如下
Datetime::Datetime(long year, int month, int day, int hour, int minute, int second, long microsecond) {}
猜测其可能使用了快速初始化之类的方案,如:
Datetime::Datetime(long year, int month, int day, int hour, int minute, int second, long microsecond):year(year), month(month), day(day), hour(hour), minute(minute), second(second), microsecond(microsecond) {}
因此,非法的日期和时间未被过滤。
解析像素塔回收的底层数据,研究者在大量垃圾数据中过滤出一些代码,部分证实了上方的猜想。