0

PHPを使用してサイズを大きくするために、バイナリ(.exe)ファイルにランダムなバイトを追加しようとしています。これまでのところ、私はこれを得ました:

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 回ループさせてもよろしいでしょうか?

4

2 に答える 2

3

私はこれを試してみます:

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

また、個人的には、あなたが書いているキャラクターが NOP に対応していればよかったと思います。でも、効くなら効く…

于 2010-06-16T14:28:58.263 に答える
2

はい、fwrite() を複数回ループしても同じ効果が得られます。

于 2010-06-16T14:24:43.357 に答える