¿Cuáles son las dificultades de descifrar un juego protegido por Denuvo?

Se dice que Denuvo es un sistema de software a prueba de manipulaciones, lo que significa que se usa para proteger DRM de juegos convencionales (como Steam u Origin). Aparentemente, es una nueva versión de VMProtect (enlace en ruso; traducción parcial al inglés aquí – enlace; también enlace de lectura).

No lo he mirado y asumo que será mucho trabajo hacerlo (está hecho para que sea difícil de entender), pero, respaldado por cualquier información que pueda encontrar, si alguien me pide que invente algo como esto, esto es lo que intentaría:

  • Primero, la máquina virtual normal y el código de detección del depurador , por ejemplo, VMware responde a una IRQ específica; Si llamar a esto no es un error, está ejecutando en una máquina virtual. No será muy efectivo (los depuradores parcheados y las máquinas virtuales imitarán las respuestas del hardware real), pero también es fácil de implementar.
  • Usaría los mismos canales de comunicación que usan los depuradores . Si ya hay un depurador conectado, esto no funcionará (lo que puedo detectar y dejará en libertad bajo fianza) o al menos confundirá al otro depurador.
  • Intentaría cronometrar la ejecución de las funciones y fianza si veo que algo toma un orden de magnitud más de lo habitual. El código que se ejecuta lentamente es un síntoma de un depurador o algún tipo de rastreo (o una CPU que es demasiado lenta para ejecutar el juego de todos modos).
  • Para los programadores de ensamblaje, el código era información antes de que fuera genial. Un programa puede cifrar y descifrar sus propias instrucciones , y utilizar la criptografía de caja blanca para no revelar la clave en la memoria (la “clave” está incrustada en la estructura de un código grande y complejo). Un cracker tendría que engañar al esquema de protección para descifrar y cifrar datos para él, lo que puede ser difícil.
  • Seguí religiosamente las peores prácticas de desarrollo de software . Las funciones se dividirán en miles de piezas conectadas con saltos indirectos, habrá redundancia en todas partes y todo estará conectado a todo lo demás. El flujo del programa sería lo más retorcido posible . Por supuesto, cada variable será una variable global, y algunos valores de algunas variables se reutilizarán para múltiples propósitos no relacionados en diferentes partes del programa, mientras que otros no servirán para nada (sin que esto sea obvio) o sirvan como partes de un valor cuando se combina con otros. Escribiría un programa que pueda convertir código bueno a código malo, porque escribir esto a mano sería una locura. Esto se llama ofuscación de código .
  • O tal vez podría llevar esto un paso más allá y traducir el programa a la peor CPU jamás imaginada : una máquina virtual hecha específicamente para tener un horrible conjunto de instrucciones y semántica de ejecución. Habrá millones de instrucciones que hacen lo mismo de maneras ligeramente diferentes, y trataría de hacer que la misma instrucción signifique cosas diferentes dependiendo de cuándo la ejecute.
  • Si conozco algún error en sus depuradores , me aseguraré de que mi código los active o de lo contrario los haga funcionar lentamente.
  • Voy a saltar a la mitad de las instrucciones para confundir a los analizadores estáticos; en última instancia, las instrucciones de la CPU son solo un montón de bytes; puede crear un esquema similar a esos textos en los que si lee solo la primera letra de cada fila, recibe un mensaje diferente al de leer el texto normalmente.

Lo anterior probablemente tiene sentido, porque mencionan explícitamente en su sitio web que protege “funciones de juego no críticas de rendimiento” : las técnicas anteriores tienen un gran impacto en el rendimiento, y destruir el bucle principal del juego habría sido inaceptable. También hay este extracto del Manual del usuario de VMProtect:

Las formas más eficientes de proteger una aplicación son la ofuscación y la virtualización que complican el análisis del código de la aplicación protegida. En general, la alta eficiencia de estos métodos de protección se basa en el factor humano: cuanto más complejo es el código y más recursos utiliza la aplicación, más difícil es para un cracker comprender la lógica del programa y, en consecuencia, descifrar la protección.

[…]

La única desventaja de la virtualización es la velocidad de ejecución relativamente baja, por lo que este método solo debe aplicarse a partes del código que no son críticas para la velocidad de ejecución.

Entonces, ¿cómo es exactamente algo de esto nuevo? Pues no lo es ; Los dos factores importantes que hacen que el craqueo sea lento son, primero:

No hubo buenos depuradores de 64 bits hasta hace poco. OllyDbg, Immunity y similares solo funcionan para aplicaciones de 32 bits. Y las herramientas dejadas por la generación anterior de crackers, las que sabían cómo escribir un compilador optimizador (para deshacerse de la ofuscación o una máquina virtual), ya no funcionan.

Y segundo, con Steam matándolo en los países “piratas” (SteamSpy – Rusia – Estadísticas del país), la motivación para escribir las herramientas no es la misma; si anteriormente tu única esperanza de jugar ese juego era encontrar o escribir un crack para él, ahora solo espera y obtén un 75% de descuento.

Dicho esto, tales sistemas a menudo tienen vidas extremadamente cortas: no existe un método seguro para proteger el software en hardware no protegido, y si el esquema de protección es interesante, siempre atraerá a los crackers. Además, si la protección es de uso general, hay una forma de uso general para vencerla (puede leer más en http://whiteboxcrypto.com/files/… (PDF)). Sin embargo, el esfuerzo por romper la protección puede ser similar al esfuerzo por lograrlo , y solo un lado en ese conflicto realmente está recibiendo su pago.

La forma en que Denuvo se mantiene al tanto de eso es actualizando constantemente su sistema , casi con cada lanzamiento del juego. Sospecho que esto es parte de la razón por la cual es tan costoso. Ya había un par de grietas para los juegos de Denuvo, pero AFAIK no eran “verdaderas grietas” (es decir, no quitaron la protección por completo; explotaron errores o incluso sacrificaron cuentas legítimas de Steam para evitarlo).

No es difícil cuando usas recursos reales y correctos. Los verdaderos hacks que funcionan son difíciles de encontrar. En este video puede ver la herramienta utilizada para evitar la protección de Denuvo.

He usado esta herramienta y me funciona.

El sitio está en la imagen de abajo.

¿Qué es el Denuvo?

Los primeros informes sugirieron que Denuvo Anti-Tamper “encripta y desencripta continuamente para que sea imposible de descifrar”. [1] Denuvo Software Solutions ha declarado que la tecnología “no encripta y desencripta continuamente ningún dato en los medios de almacenamiento”. no sería beneficioso en términos de seguridad o rendimiento “. La compañía no ha revelado cómo funciona Denuvo Anti-Tamper. [2] El grupo chino warez 3DM afirmó haber derrotado a Denuvo Anti-Tamper el 1 de diciembre de 2014. El grupo afirmó que la tecnología involucra una “máquina de cifrado de 64 bits” que requiere claves criptográficas únicas para el hardware específico de cada sistema instalado. [3]

Más tarde, a principios de diciembre, el mismo grupo lanzó un crack para el videojuego Dragon Age: Inquisition, que utiliza Denuvo Anti-Tamper para proteger el acceso en línea DRM de Electronic Arts. [4] Pero esto tomó casi un mes, lo cual es inusualmente largo para los juegos de PC. [4] Cuando se le preguntó sobre el desarrollo, Denuvo reconoció que “todos los juegos protegidos eventualmente se resquebrajan”. [4] Ars Technica señaló que la mayoría de las ventas legítimas de juegos importantes ocurrieron dentro de los 30 días posteriores al lanzamiento, por lo que los editores pueden considerar que Denuvo es un éxito si eso significa que un juego tardó mucho más en descifrarse. [5]

Los juegos protegidos por Denuvo requieren una reactivación en línea para cada cambio de hardware cada 24 horas. Denuvo limita las activaciones a 4 actualizaciones de hardware por 24 horas. [6] [7]

En enero de 2016, según los informes, 3DM casi dejó de intentar descifrar Just Cause 3, que está protegido con Denuvo, debido a las dificultades asociadas con el proceso. [8] También advirtieron que debido a las tendencias actuales en la tecnología de encriptación, en dos años, el craqueo de los videojuegos puede volverse imposible. [8] [9] Thomas Goebl de Denuvo cree que algunas versiones solo de consola pueden obtener la versión de PC en el futuro debido a esta tecnología. [9] Se anunció que 3DM detendría toda investigación sobre Denuvo Anti-Tamper, dejaría de descifrar todos los juegos para un solo jugador desde febrero de 2016 durante todo un año, comenzaría a depender de otros crackers y vería si las ventas han aumentado en China en un año. [ 10]

A principios de agosto de 2016, se informó que la protección de Denuvo encontrada en Doom había sido ignorada por una galleta llamada Voksi. [11] Los pases para muchos otros juegos protegidos por Denuvo se lanzaron en los días siguientes. [12] Aunque el exploit utilizado para estas derivaciones fue parchado 3 días después del lanzamiento de la primera derivación, se supo que Rise of the Tomb Raider, Inside and Doom [13] había sido completamente descifrado por el grupo de escenas CONSPIR4CY (CPY), [14] por emulando con éxito la protección Denuvo y parcheando el resto de los desencadenantes del juego.

Playdead luego eliminó a Denuvo de su juego Inside en sus parches posteriores. [15] ID Software también eliminó a Denuvo de su versión Doom de 2016 a través de un parche en diciembre de ese mismo año. [16] Crytek luego eliminó a Denuvo de su juego de realidad virtual The Climb. [17]

El 29 de enero de 2017, Resident Evil 7: Biohazard fue descifrado solo cinco días después de su lanzamiento, lo que lo convierte en el juego más rápido en ser descifrado con la última implementación de Denuvo. por lo que es imposible de descifrar “. [1] Denuvo Software Solutions ha declarado que la tecnología” no encripta y desencripta continuamente ningún dato en los medios de almacenamiento. Hacerlo no sería beneficioso en términos de seguridad o rendimiento “. La compañía no ha revelado cómo funciona Denuvo Anti-Tamper. [2] El grupo chino warez 3DM afirmó haber derrotado a Denuvo Anti-Tamper el 1 de diciembre de 2014. El grupo afirmó que la tecnología involucra una “máquina de cifrado de 64 bits” que requiere claves criptográficas únicas para el hardware específico de cada sistema instalado. [3]

Más tarde, a principios de diciembre, el mismo grupo lanzó un crack para el videojuego Dragon Age: Inquisition, que utiliza Denuvo Anti-Tamper para proteger el acceso en línea DRM de Electronic Arts. [4] Pero esto tomó casi un mes, lo cual es inusualmente largo para los juegos de PC. [4] Cuando se le preguntó sobre el desarrollo, Denuvo reconoció que “todos los juegos protegidos eventualmente se resquebrajan”. [4] Ars Technica señaló que la mayoría de las ventas legítimas de juegos importantes ocurrieron dentro de los 30 días posteriores al lanzamiento, por lo que los editores pueden considerar que Denuvo es un éxito si eso significa que un juego tardó mucho más en descifrarse. [5]

Los juegos protegidos por Denuvo requieren una reactivación en línea para cada cambio de hardware cada 24 horas. Denuvo limita las activaciones a 4 actualizaciones de hardware por 24 horas. [6] [7]

En enero de 2016, según los informes, 3DM casi dejó de intentar descifrar Just Cause 3, que está protegido con Denuvo, debido a las dificultades asociadas con el proceso. [8] También advirtieron que debido a las tendencias actuales en la tecnología de encriptación, en dos años, el craqueo de los videojuegos puede volverse imposible. [8] [9] Thomas Goebl de Denuvo cree que algunas versiones solo de consola pueden obtener la versión de PC en el futuro debido a esta tecnología. [9] Se anunció que 3DM detendría toda investigación sobre Denuvo Anti-Tamper, dejaría de descifrar todos los juegos para un solo jugador desde febrero de 2016 durante todo un año, comenzaría a depender de otros crackers y vería si las ventas han aumentado en China en un año. [ 10]

A principios de agosto de 2016, se informó que la protección de Denuvo encontrada en Doom había sido ignorada por una galleta llamada Voksi. [11] Los pases para muchos otros juegos protegidos por Denuvo se lanzaron en los días siguientes. [12] Aunque el exploit utilizado para estas derivaciones fue parchado 3 días después del lanzamiento de la primera derivación, se supo que Rise of the Tomb Raider, Inside and Doom [13] había sido completamente descifrado por el grupo de escenas CONSPIR4CY (CPY), [14] por emulando con éxito la protección Denuvo y parcheando el resto de los desencadenantes del juego.

Playdead luego eliminó a Denuvo de su juego Inside en sus parches posteriores. [15] ID Software también eliminó a Denuvo de su versión Doom de 2016 a través de un parche en diciembre de ese mismo año. [16] Crytek luego eliminó a Denuvo de su juego de realidad virtual The Climb. [17]

El 29 de enero de 2017, Resident Evil 7: Biohazard fue descifrado solo cinco días después de su lanzamiento, por lo que es el juego más rápido que se descifró con la última implementación de Denuvo. [18]

Cuando “crack” un juego, está eliminando una función específica del juego, normalmente un software de protección de derechos de autor. Denuvo se especializa en el desarrollo de software para evitar que las personas descifren juegos. Utilizan varios métodos que dificultan el agrietamiento. Sin embargo, desafortunadamente, la compañía es extremadamente privada sobre sus métodos. Cualquier juego que esté protegido por Denuvo debe pasar por procesos, como la reactivación de 24 horas.

More Interesting

Si una película de 2 horas sin comprimir suele ser de 1 terabyte, ¿cómo consiguen que quepa en un disco?

Cómo cambiar una identificación de computadora

¿Cuáles son los tipos de palabras relacionadas que genera Word2Vec?

¿Puedo ser lo suficientemente bueno en el aprendizaje automático?

¿Por qué falla la búsqueda de amplitud primero si el gráfico tiene bordes que son de costos no unitarios?

¿El trabajo humano se vuelve menos efectivo cada día en relación con la inteligencia artificial?

¿Se beneficiaría el plan de estudios general de informática de la universidad al dividirse en pistas CS aplicadas y puras?

Cómo resolver mis problemas relacionados con el calentamiento de computadoras portátiles

¿Qué tipo de sitio web le gustaría ver y por qué?

Mientras instalaba Mavericks OS X en mi PC con Windows 7 usando una máquina virtual, arrojó un error que decía 'Mac OS X no es compatible con la traducción binaria. Para ejecutar Mac OS X, necesita un host en el que VMware Player sea compatible con Intel VT-x o AMD-V '. ¿Cómo puedo arreglar esto?

¿Cuál es el estado actual de la generación de pruebas automatizadas en informática?

Computational Science (Scientific Computing): ¿Qué es la teoría funcional de la densidad (DFT)?

¿Qué consejo darías para prepararte para un curso universitario en informática?

¿El aprendizaje automático ha logrado mejoras tangibles en la eficacia del descubrimiento de fármacos?

¿Cómo tarda un algoritmo aleatorio de selección rápida en O (n)?