La ejecución de las instrucciones Binary Assembled funciona al explotar la vulnerabilidad en el Programa de Aplicación. Por ejemplo, al insertar un código malicioso en un PDF, si hay una falla en el Software PDF, se puede ejecutar el Código de la Sección de Datos.
Ahora me dirijo a tu pregunta. Por lo que sé después de 8086 , Intel comenzó a emplear 4 niveles de protección. El nivel interno es para procesos de nivel de kernel y el nivel más externo es para Procesos de nivel de usuario . Hay pilas separadas para ambos procesos, pero el espacio de la memoria es compartido.
Un proceso de nivel de usuario (persona que llama) no puede realizar directamente una tarea privilegiada, necesita llamar a un código de confianza que hace el trabajo para la persona que llama. Pero para que el proceso de nivel de usuario llame al código de confianza, diga para escribir un elemento de datos X, debería tener el permiso para hacerlo (indirectamente).
Hay algunas vulnerabilidades comúnmente denominadas como Caballos de Troya que permiten que el proceso de Nivel de usuario use un Código de confianza para hacer cosas que en realidad no está permitido hacer.
Entonces, si el programa de la aplicación en sí tiene vulnerabilidades, si se combina con tales explotaciones puede obtener el código deseado en ejecución.