
php_mt_seed is a PHP mt_rand() seed cracker
php_mt_seed هو أداة لكسر بذرة mt_rand() في PHP. في وضع الاستدعاء الأبسط، يجد البذور الممكنة بالنظر إلى أول مخرج لـ mt_rand() بعد البذر المحتمل بواسطة mt_srand(). مع أوضاع الاستدعاء المتقدمة، يمكنه أيضًا مطابقة مخارج mt_rand() المتعددة، غير الأولى، و/أو غير الدقيقة مع قيم البذور المحتملة.
خوارزمية mt_rand() في PHP تغيرت عبر السنوات منذ تقديمها في PHP 3.0.6. يدعم php_mt_seed 4.0 ثلاث مراجعات رئيسية للخوارزمية: 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 بت في أقل من دقيقة. على الجيل الثاني من Xeon Phi، يفعل الشيء نفسه في 3 ثوانٍ.