У меня есть файл 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);
При просмотре двоичных данных, выводимых в массиве (с отключенными заголовками), это правильно - по сравнению с незашифрованной версией, однако, когда заголовки включены, видео не воспроизводится.