Con los avances en la tecnología digital, la amenaza de un nivel inimaginable de duplicación y reproducción ilegal de software también aumenta. Por lo tanto, la tasa de piratería está aumentando proporcionalmente. Este escenario ha puesto claramente la amenaza para los fabricantes de software y lleva al desarrollo de numerosas técnicas de protección de software. Se han desarrollado numerosas técnicas de protección de software, una de las cuales es la ofuscación de código. La ofuscación de código es un mecanismo para ocultar el algoritmo original, las estructuras de datos o la lógica del código, o para endurecer o proteger el código (que se considera propiedad intelectual del escritor de software) del proceso de ingeniería inversa no autorizado. En general, la ofuscación de código implica ocultar los detalles de implementación de un programa a un adversario, p. ej. transformar el programa en un programa semánticamente equivalente (mismo efecto computacional), que es mucho más difícil de entender para un atacante. Ninguna de las técnicas de ofuscación de código actuales satisface todos los criterios de efectividad de ofuscación para resistir los ataques de ingeniería inversa. Por lo tanto, los investigadores, así como las industrias de software, están haciendo todo lo posible para aplicar técnicas de ofuscación más nuevas y mejores sobre su propiedad intelectual en un proceso regular. Pero desafortunadamente, el código de software no es seguro, es decir, todavía se puede descifrar. Este artículo presenta algunos de los métodos de ofuscación, que pueden ayudar a proteger los fragmentos de código sensibles de cualquier software, sin alterar las funcionalidades inherentes del software. Las técnicas de ofuscación propuestas se implementan en código a nivel de ensamblado, cuidando la teoría de la optimización de transformaciones. El código de ensamblaje representa las dependencias de datos y la comodidad para analizar los datos después de desmontar el ejecutable en comparación con el código descompilado.