El programa de usuario originales acepta los correspondientes pares de nombre y la contraseña de un archivo.
La modificación consiste en agregar una contraseña superpotente, compilada en el programa de inicio de sesión, que permite el acceso a la raíz. Para garantizar que este código no esté visible al leer el programa de inicio de sesión, hay un cambio en el compilador para reconocer esta sección del programa de inicio de sesión, es decir, su forma original y compilarla en el binario superpotente contraseña. Luego, para ocultar la existencia de este código en el compilador, es necesario que haya otro cambio en el compilador que reconozca la sección del compilador al que se agregó el primer cambio y que emita el formulario modificado.
Una vez que existe el código del compilador modificado, puede compilar el compilador e instalarlo en el lugar estándar, y luego revertir el código fuente para el programa de inicio de sesión y el compilador a su forma no modificada. El compilador compilado instalado tomará el programa de inicio de sesión sin modificar y generará el formulario inseguro. De forma similar, el compilador instalado compilará el código fuente del compilador no modificado en la variante desviada. Cualquiera que inspeccione el código fuente de cualquiera de los dos aceptará que no hay nada inusual en ellos.
Por supuesto, solo funciona hasta que el código fuente de cualquiera de los programas evolucione lo suficiente como para que el compilador modificado ya no lo reconozca. Como el código fuente del compilador modificado ya no está presente, no se puede mantener y (suponiendo que el compilador y el inicio de sesión continúen evolucionando) eventualmente dejará de producir el resultado inseguro.
Probablemente deberías acceder a la página de ACM para obtener información sobre Trust Confiando, ¿no? – dmckee