0

我正在尝试向二进制(.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 可以正常工作,但是如果我想做 junk(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 回答