2010-06-16 3 views
0

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가 작동하지만 난 "치명적인 오류는 PHP 오류 파일에 더 많은 크기를 추가 정크 (100)을 수행하려는 경우 : 허용 메모리 크기 ... "

다른 방법으로 오류없이이 작업을 수행 할 수 있습니까? fwrite xxx 번 반복해도 괜찮습니까?

+0

세상에, 그것은 exponentional입니다. 나는 'junk (100)'라는 문자열이 얼마나 큰지 짐작할 수는 없다. ... – Aistina

+0

그래서 더 좋은 방법을 묻고있다. 덕분이다. – hurmans

+0

사실, Google에 따르면, 문자열의 길이는 3.24518554 × 10^32입니다. 메모리가 부족한 것은 당연합니다;) – Aistina

답변

1

나는 이것을 시도 할 다음 charactor는 NOP에 coresponded 서면 있다면

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

또한, personaly 내가 선호하는 것이다. 하지만 작동하면 작동합니다 ...

+0

NOP 란 무엇입니까 ??? – hurmans

+0

조작 없음. 실행 파일을 추가하기 때문에, thomasfedb는 안전하지 않은 명령어를 추가하려고 할 수도 있다고 제안합니다. 그러한 지시를 찾으려면 마이크로 프로세서의 설명서를 확인해야합니다. – webbiedave

+0

@hurmans NOP는 프로그램 실행에 직접적인 영향을주지 않는 유효한 어셈블리 언어 명령 인 "No Operation"입니다. .exe 파일에 포함되어 있으면 해당 파일의 코드가 손상되지 않습니다. –

2

예, fwrite()를 여러 번 반복해도 동일한 효과를 얻을 수 있습니다.

관련 문제