¿Cómo exactamente puede un archivo MP4 congelar iOS?

Para reproducir un video MP4, el software que lo admite debe seguir varios pasos antes de poder mostrar las imágenes y reproducir los sonidos.

Primero, el contenido del archivo debe ser demuxed. El formato de archivo MP4 mezcla partes de una secuencia de video con partes de una secuencia de audio y partes de una secuencia de subtítulos, de modo que a medida que se lee el archivo, cada vez que lee un cierto número de bytes, contiene un poco de todos los diferentes transmisiones, para que puedan decodificarse lo más cerca posible, para que todo se alinee Eso se llama muxing, y el proceso de desempaque se llama demuxing.

Si el software que lee el archivo no maneja los casos patológicos correctamente, la operación de demuxing tiene el potencial de sobrescribir las cosas en su memoria de trabajo, lo que puede provocar fallas o ataques de seguridad.

Luego, el video debe ser decodificado. Hay una mezcla de diferentes tipos de cuadros, algunos que son como decodificar imágenes JPEG, otros que contienen solo diferencias entre cuadros. A medida que se decodifican, si el proceso de decodificación no maneja los casos patológicos correctamente, o si hay un error en la forma en que maneja casos particulares, puede provocar que se sobrescriba la memoria, lo que provoca bloqueos; o podría conducir a datos masivamente corruptos.

Tienes la idea.

Cada vez que se sobrescribe la memoria donde se supone que no debe estar, existe la posibilidad de que el decodificador se pueda reemplazar en la memoria. Si hay partes de él, entonces cuando va a buscar el siguiente código que se ejecuta, de repente, está mirando cosas en la memoria que no son código, y no hay forma de que sepa la diferencia.