Predicado opaco

En programación de computadoras, un predicado opaco es un predicado - una expresión que se evalúa a "verdadero" o "falso" - para el cual el valor es conocido por el programador a prior, pero que, por distintas razones, necesita ser evaluado en tiempo de ejecución.

Usos

Los predicados opacos han sido usados como:

  • Marcas de agua (ya que es identificable en el ejecutable del programa).
  • Método para ofuscar el flujo de control para así dificultar la ingeniería inversa. Por ejemplo si tenemos un bloque de instrucciones A;B y el predicado opaco P que siempre va a ser TRUE. Podemos crear la secuencia de control equivalente "A;IF P THEN B ELSE C". De esta forma un análisis estático de código no puede saber que A y B se ejecutan siempre de forma consecutiva.[1]
  • Para evitar que un optimizador demasiado entusiasta optimice una parte de un programa.

Referencias

  1. Estudio y Prueba de una Métrica para los Ofuscadores de Java. Ángel Miralles Arévalo. Proyecto Fin de Carrera. Universidad de Sevilla. Mayo de 2005
Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.