Predicado opaco

De Wikipedia, la enciclopedia libre

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[editar]

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[editar]

  1. Estudio y Prueba de una Métrica para los Ofuscadores de Java Archivado el 13 de enero de 2018 en Wayback Machine.. Ángel Miralles Arévalo. Proyecto Fin de Carrera. Universidad de Sevilla. Mayo de 2005