إضافة وحدات البايت إلى ملف ثنائي باستخدام PHP فقط؟

StackOverflow https://stackoverflow.com/questions/3054104

  •  27-09-2019
  •  | 
  •  

سؤال

أحاول إضافة بايت عشوائي إلى ملفات ثنائية (.exe) لزيادة حجمها باستخدام PHP. حتى الآن حصلت على هذا:

function junk($bs)
{
    // string length: 256 chars
    $tmp = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

    for($i=0;$i<=$bs;$i++)
    {
        $tmp = $tmp . $tmp;
    }
    return $tmp;
}

$fp = fopen('test.exe', 'ab');
fwrite($fp, junk(1));
fclose($fp);

هذا يعمل بشكل جيد ويكون EXE الناتج وظيفيًا ، لكن إذا أردت القيام بالخروج (100) لإضافة المزيد من الحجم إلى الملف أحصل على خطأ PHP "خطأ فادح: حجم الذاكرة المسموح به ..."

في أي طريقة أخرى يمكنني تحقيق ذلك دون الحصول على خطأ؟ هل سيكون من المقبول حلقة Fwrite XXX Times؟

هل كانت مفيدة؟

المحلول

سأحاول هذا:

$fp = fopen('test.exe', 'ab');
for ($i = 0, $i < 10000, $i++) {
fwrite($fp, 'a');
}
fclose($fp);

أيضا ، شخصية أود أن تفضل ما إذا كان المشير الذي كنت تكتبه corensed إلى NOP. ولكن ، إذا كان يعمل ، فهو يعمل ...

نصائح أخرى

نعم ، يجب أن يحقق حلقات اللون () عدة مرات نفس التأثير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top