إضافة وحدات البايت إلى ملف ثنائي باستخدام PHP فقط؟
سؤال
أحاول إضافة بايت عشوائي إلى ملفات ثنائية (.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. ولكن ، إذا كان يعمل ، فهو يعمل ...
نصائح أخرى
نعم ، يجب أن يحقق حلقات اللون () عدة مرات نفس التأثير.
لا تنتمي إلى StackOverflow