
php_mt_seed is a PHP mt_rand() seed cracker
php_mt_seed — это инструмент для подбора seed генератора mt_rand() в PHP. В самом простом режиме вызова он находит возможные seed по самому первому результату mt_rand() после возможной инициализации с помощью mt_srand(). В расширенных режимах вызова он также способен сопоставлять несколько, не первых и/или неточных результатов mt_rand() с возможными значениями seed.
Алгоритм mt_rand() в PHP менялся с годами, начиная с его появления в PHP 3.0.6. php_mt_seed 4.0 поддерживает 3 основные редакции алгоритма: PHP 3.0.7–5.2.0, PHP 5.2.1–7.0.x и PHP 7.1.0+ (по крайней мере, до последней версии на момент написания, а именно PHP 7.2.0beta3).
php_mt_seed использует оптимизированные для атак реализации алгоритмов mt_rand() из PHP. Он написан на C с опциональными SIMD-инструкциями (SSE2, SSE4.1/AVX, XOP, AVX2, AVX-512, а также MIC) и OpenMP. На современном четырёхъядерном процессоре он способен перебрать всё 32-битное пространство seed менее чем за минуту. На Xeon Phi второго поколения он делает то же самое за 3 секунды.