Добавить байты в двоичный файл, используя только PHP? - PullRequest
0 голосов
/ 16 июня 2010

Я пытаюсь добавить случайные байты в двоичные (.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 раз?

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

Да, многократное выполнение цикла fwrite () должно привести к тому же эффекту.

1 голос
/ 16 июня 2010

Я бы попробовал это:

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

также лично я бы предпочел, чтобы тот персонаж, которого вы пишете, отвечал на NOP.Но если это работает, это работает ...

...