Predicado opaco
From Wikipedia, the free encyclopedia
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.