Как обслуживать видеопоток XOR с помощью PHP - PullRequest
0 голосов
/ 03 июня 2019

У меня есть файл PHP, который обслуживает видеопоток, используя fread для файла mp4.Мне нужно, чтобы он работал с обфусцированными файлами XOR, но не могу понять, в чем дело.

Я использовал шифр паролей XOR для некоторых видеофайлов.Сейчас я пытаюсь прочитать двоичные данные, используя PHP и расшифровывая их с помощью XOR.У меня есть PHP-скрипт, который обслуживает mp4 с правильными заголовками, но мне нужно расшифровать двоичные данные перед их обслуживанием.

Вот код для обслуживания видеопотока:

while (!feof($stream)) {
    $buffer = fread($stream, $chunksize);
    echo $buffer;
    flush();
}

Вы можете увидеть полный пример этого здесь: https://gist.github.com/ranacseruet/9826293 Он отлично работает на обычном файле MP4.

Но я пытаюсь сделать это перед выводом буфера:

        // unpack into byte array
        $buffer_bytes = unpack("C*",$buffer); 
        for ($i=0; $i < $chunksize; $i++) { 
            //byte arrays start at index 1
            $buffer_bytes[$i+1] ^= $password_bytes[($i%10)+1];
        }
        // pack the decrypted bytes back into $buffer before echoing
        $buffer = pack("C*", ...$buffer_bytes);

При просмотре двоичных данных, выводимых в массиве (с отключенными заголовками), это правильно - по сравнению с незашифрованной версией, однако, когда заголовки включены, видео не воспроизводится.

...