El descifrado de software (conocido como "rotura" principalmente en la década de 1980 [1] ) es la modificación del software para eliminar o deshabilitar funciones que la persona que descifra el software considera indeseables, especialmente las funciones de protección contra copia (incluida la protección contra la manipulación de software, número de serie, clave de hardware, verificación de fecha y verificación de disco) o molestias de software como pantallas molestas y adware .
Un crack se refiere a los medios para lograr, por ejemplo, un número de serie robado o una herramienta que realiza ese acto de craqueo. [2] Algunas de estas herramientas se denominan keygen , patch o loader . Un keygen es un generador de números de serie de producto hecho a mano que a menudo ofrece la capacidad de generar números de serie funcionales en su propio nombre. Un parche es un pequeño programa de computadora que modifica el código de máquina de otro programa. Esto tiene la ventaja de que un cracker no incluya un ejecutable grande en una versión cuando solo se cambian unos pocos bytes. [3] Un cargador modifica el flujo de inicio de un programa y no elimina la protección, sino que la elude. [4] [5] Un ejemplo bien conocido de cargador es un entrenador que se usa para hacer trampa en los juegos. [6] Fairlight señaló en uno de sus archivos .nfo que este tipo de grietas no están permitidas para los lanzamientos de juegos de escena warez . [7] [4] [8] Una guerra nuclear ha demostrado que es posible que la protección no se active en ningún momento para que sea una grieta válida. [9]
La distribución de copias crackeadas es ilegal en la mayoría de los países. Ha habido demandas por craqueo de software. [10] Podría ser legal utilizar software pirateado en determinadas circunstancias. [11] Sin embargo, los recursos educativos para la ingeniería inversa y el descifrado de software son legales y están disponibles en forma de programas Crackme .
Historia
La primera protección contra copia de software se aplicó al software de las computadoras Apple II , [12] Atari 800 y Commodore 64 . [ cita requerida ] . Los editores de software han implementado métodos cada vez más complejos en un esfuerzo por detener la copia no autorizada de software.
En Apple II, a diferencia de las computadoras modernas que usan controladores de dispositivos estandarizados para administrar las comunicaciones del dispositivo, el sistema operativo controlaba directamente el motor paso a paso que mueve el cabezal de la unidad de disquete y también interpretaba directamente los datos sin procesar, llamados nibbles , leídos de cada pista para identificar los sectores de datos. Esto permitió una protección de copia de software compleja basada en disco, al almacenar datos en medias pistas (0, 1, 2.5, 3.5, 5, 6 ...), cuartos de pista (0, 1, 2.25, 3.75, 5, 6 ... ), y cualquier combinación de los mismos. Además, las pistas no necesitaban ser anillos perfectos, sino que podían seccionarse de modo que los sectores pudieran escalonarse a lo largo de pistas desplazadas superpuestas, la versión más extrema se conoce como seguimiento en espiral. También se descubrió que muchas unidades de disquete no tenían un límite superior fijo para el movimiento del cabezal y, a veces, era posible escribir una pista 36 adicional por encima de las 35 pistas normales. Los programas de copia estándar de Apple II no podían leer tales disquetes protegidos, ya que el DOS estándar asumía que todos los discos tenían un diseño uniforme de 35 pistas, 13 o 16 sectores. Los programas especiales de copia pequeña, como Locksmith y Copy II Plus, a veces pueden duplicar estos discos mediante el uso de una biblioteca de referencia de métodos de protección conocidos; cuando los programas protegidos se descifran, se eliminan por completo del sistema de protección contra copias y se transfieren a un disco de formato estándar que cualquier programa de copia normal de Apple II podría leer.
Una de las rutas principales para piratear estas primeras protecciones contra copias era ejecutar un programa que simulara el funcionamiento normal de la CPU. El simulador de CPU proporciona una serie de funciones adicionales al pirata informático, como la capacidad de realizar un solo paso a través de cada instrucción del procesador y examinar los registros de la CPU y los espacios de memoria modificados a medida que se ejecuta la simulación (cualquier desensamblador / depurador moderno puede hacer esto). El Apple II proporcionó un desensamblador de código de operación incorporado, que permitía decodificar la memoria sin procesar en códigos de operación de la CPU, y esto se utilizaría para examinar lo que la protección contra copias estaba a punto de hacer a continuación. En general, el sistema de protección contra copias tenía poca o ninguna defensa, ya que todos sus secretos se hacen visibles a través de la simulación. Sin embargo, debido a que la simulación en sí debe ejecutarse en la CPU original, además de piratear el software, la simulación a menudo se ejecuta muy lentamente incluso a la máxima velocidad.
En las computadoras Atari de 8 bits, el método de protección más común era a través de "sectores defectuosos". Estos eran sectores del disco que la unidad de disco no podía leer intencionalmente. El software buscaría estos sectores cuando el programa se cargara y dejaría de cargar si no se devolviera un código de error al acceder a estos sectores. Había disponibles programas de copia especiales que copiarían el disco y recordarían los sectores defectuosos. El usuario podría utilizar una aplicación para hacer girar la unidad leyendo constantemente un solo sector y mostrar las RPM de la unidad. Con la parte superior de la unidad de disco retirada, se podría usar un destornillador pequeño para reducir las RPM de la unidad por debajo de cierto punto. Una vez que la unidad se ralentizó, la aplicación podría escribir "sectores defectuosos" donde fuera necesario. Cuando terminó, las RPM de la unidad se aceleraron de nuevo a la normalidad y se realizó una copia sin fisuras. Por supuesto, descifrar el software para esperar buenos sectores hechos para discos fácilmente copiados sin la necesidad de entrometerse con la unidad de disco. A medida que pasaba el tiempo, se desarrollaron métodos más sofisticados, pero casi todos involucraban algún tipo de datos de disco mal formados, como un sector que podría devolver diferentes datos en accesos separados debido a una mala alineación de datos. Se pusieron a disposición productos (de empresas como Happy Computers ) que reemplazaron el BIOS del controlador en las unidades "inteligentes" de Atari. Estas unidades mejoradas permitieron al usuario hacer copias exactas del programa original con protecciones de copia en el nuevo disco.
En el Commodore 64, se utilizaron varios métodos para proteger el software. Para el software distribuido en cartuchos ROM , se incluyeron subrutinas que intentaron escribir sobre el código del programa. Si el software estuviera en la ROM, no pasaría nada, pero si el software se hubiera movido a la RAM , el software se deshabilitaría. Debido al funcionamiento de las unidades de disquete Commodore, un esquema de protección contra escritura haría que el cabezal de la unidad de disquete golpeara contra el extremo de su riel, lo que podría provocar que el cabezal de la unidad se desalineara. En algunos casos, las versiones crackeadas de software eran deseables para evitar este resultado. Una cabeza motriz desalineada era poco común que se fijara por sí sola al estrellarse contra los topes de los rieles. Otro esquema de protección brutal fue pasar de la pista 1 a la 40 y viceversa unas cuantas veces.
La mayoría de los primeros crackers de software eran aficionados a la informática que a menudo formaban grupos que competían entre sí en el descifrado y la difusión de software. Romper un nuevo esquema de protección contra copias lo más rápido posible a menudo se consideraba una oportunidad para demostrar la superioridad técnica de uno, más que una posibilidad de hacer dinero. Algunos aficionados poco calificados tomarían software ya descifrado y editarían varias cadenas de texto sin cifrar para cambiar los mensajes que un juego le diría a un jugador, a menudo algo considerado vulgar. Subir las copias alteradas en las redes de intercambio de archivos proporcionó una fuente de risas para los usuarios adultos. Los grupos de cracker de la década de 1980 comenzaron a publicitarse a sí mismos y a sus habilidades adjuntando pantallas animadas conocidas como intros de crack en los programas de software que descifraron y lanzaron. Una vez que la competencia técnica se expandió de los desafíos del craqueo a los desafíos de crear intros visualmente impactantes, se establecieron las bases para una nueva subcultura conocida como demoscene . Demoscene comenzó a separarse de la "escena warez" ilegal durante la década de 1990 y ahora se considera una subcultura completamente diferente. Muchos crackers de software se han convertido más tarde en ingenieros inversos de software extremadamente capaces; El profundo conocimiento del ensamblaje necesario para romper las protecciones les permite aplicar ingeniería inversa a los controladores para trasladarlos de controladores solo binarios para Windows a controladores con código fuente para Linux y otros sistemas operativos gratuitos . Además, debido a que la música y la introducción de juegos eran una parte tan integral de los juegos, el formato de música y los gráficos se volvieron muy populares cuando el hardware se volvió asequible para el usuario doméstico.
Con el auge de Internet , los piratas informáticos desarrollaron organizaciones secretas en línea. En la segunda mitad de los noventa, una de las fuentes de información más respetadas sobre la "reversión de la protección del software" era el sitio web de Fravia .
La mayoría de los grupos de craqueo conocidos o de "élite" hacen cracks de software completamente por respeto en la " Escena ", no por lucro. A partir de ahí, los crackers eventualmente se filtran a los sitios públicos de Internet por personas / crackers que usan archivos de liberación FTP bien protegidos / seguros, que se convierten en copias completas y, a veces, se venden ilegalmente por otras partes.
La Escena de hoy está formada por pequeños grupos de personas capacitadas, que compiten informalmente para tener los mejores crackers, métodos de craqueo e ingeniería inversa .
+ HCU
La High Cracking University (+ HCU), fue fundada por Old Red Cracker (+ ORC), considerado un genio de la ingeniería inversa y una figura legendaria en RCE, para avanzar en la investigación de la ingeniería de código inverso (RCE). También había enseñado y es autor de muchos artículos sobre el tema, y sus textos se consideran clásicos en el campo y son lectura obligatoria para los estudiantes de RCE. [13]
La adición del signo "+" delante del apodo de un inversor significaba pertenencia a + HCU. Entre los estudiantes de + HCU se encontraban los mejores inversores de Windows de élite en todo el mundo. [13] + HCU publicó un nuevo problema de ingeniería inversa anualmente y un pequeño número de encuestados con las mejores respuestas calificaron para un puesto de pregrado en la universidad. [13]
+ Fravia fue profesora en + HCU. El sitio web de Fravia era conocido como "+ Páginas de ingeniería inversa de Fravia" y lo usó para desafiar a los programadores, así como a la sociedad en general, a "aplicar ingeniería inversa" al "lavado de cerebro de un materialismo corrupto y desenfrenado". En su apogeo, su sitio web recibió millones de visitantes al año y su influencia fue "generalizada". [13]
Hoy en día la mayoría de los graduados de + HCU han migrado a Linux y pocos se han quedado como inversores de Windows. La información en la universidad ha sido redescubierta por una nueva generación de investigadores y practicantes de RCE que han iniciado nuevos proyectos de investigación en el campo. [13]
Métodos
El crack de software más común es la modificación del binario de una aplicación para causar o prevenir una rama clave específica en la ejecución del programa. Esto se logra mediante ingeniería inversa del código del programa compilado utilizando un depurador como SoftICE , [14] x64dbg , OllyDbg , [15] GDB o MacsBug hasta que el cracker de software alcanza la subrutina que contiene el método principal de protección del software (o por desensamblar un archivo ejecutable con un programa como IDA ). Luego, el binario se modifica usando el depurador o un editor o monitor hexadecimal de una manera que reemplaza un código de operación de bifurcación anterior con su complemento o un código de operación NOP para que la rama de clave siempre ejecute una subrutina específica o la salte. Casi todos los cracks de software comunes son una variación de este tipo. Los desarrolladores de software patentados están desarrollando constantemente técnicas como la ofuscación de código , el cifrado y el código de modificación automática para hacer que esta modificación sea cada vez más difícil. Incluso con estas medidas que se están tomando, los desarrolladores luchan para combatir el craqueo de software. Esto se debe a que es muy común que un profesional lance públicamente un simple EXE o Retrium Installer para su descarga pública, lo que elimina la necesidad de que los usuarios sin experiencia descifren el software ellos mismos.
Un ejemplo específico de esta técnica es una grieta que elimina el período de caducidad de una prueba por tiempo limitado de una aplicación. Estos cracks suelen ser programas que alteran el ejecutable del programa y, a veces, el .dll o .so vinculado a la aplicación. Hay grietas similares disponibles para software que requiere un dongle de hardware . Una empresa también puede romper la protección contra copia de los programas que ha comprado legalmente pero que tienen licencia para un hardware en particular, de modo que no hay riesgo de tiempo de inactividad debido a fallas de hardware (y, por supuesto, no es necesario limitarse a ejecutar el software). solo en hardware comprado).
Otro método es el uso de un software especial como CloneCD para escanear y utilizar una aplicación comercial de protección contra copias. Después de descubrir el software utilizado para proteger la aplicación, se puede utilizar otra herramienta para eliminar la protección contra copia del software en el CD o DVD . Esto puede permitir que otro programa como Alcohol 120% , CloneDVD , Game Jackal o Daemon Tools copie el software protegido en el disco duro de un usuario. Entre las aplicaciones comerciales de protección contra copias más populares que se pueden escanear se incluyen SafeDisc y StarForce. [dieciséis]
En otros casos, podría ser posible descompilar un programa para obtener acceso al código fuente original o al código en un nivel superior al código máquina . Esto a menudo es posible con lenguajes de scripting y lenguajes que utilizan compilación JIT . Un ejemplo es crackear (o depurar) en la plataforma .NET donde uno podría considerar manipular CIL para satisfacer sus necesidades. El código de bytes de Java también funciona de manera similar en la que hay un lenguaje intermedio antes de que el programa se compile para ejecutarse en el código de máquina dependiente de la plataforma .
La ingeniería inversa avanzada para protecciones como SecuROM , SafeDisc , StarForce o Denuvo requiere que un cracker, o muchos cracker, dediquen mucho más tiempo a estudiar la protección, eventualmente encontrar cada falla dentro del código de protección y luego codificar sus propias herramientas para "desenvolver" la protección automáticamente contra archivos ejecutables (.EXE) y bibliotecas (.DLL).
Hay varios sitios en Internet que permiten a los usuarios descargar cracks producidos por grupos warez para juegos y aplicaciones populares (aunque con el peligro de adquirir software malicioso que a veces se distribuye a través de dichos sitios). [17] Aunque estos cracks son utilizados por compradores legales de software, también pueden ser utilizados por personas que han descargado u obtenido copias no autorizadas (a menudo a través de redes P2P ).
Reinicio de prueba
Muchos programas comerciales que se pueden descargar de Internet tienen un período de prueba (a menudo 30 días) y deben registrarse (es decir, comprarse) después de su vencimiento si el usuario desea continuar usándolos. Para restablecer el período de prueba, las entradas de registro y / o los archivos ocultos que contienen información sobre el período de prueba se modifican y / o eliminan. Con este fin, los crackers desarrollan " reiniciadores de prueba " para un programa en particular o, a veces, también para un grupo de programas del mismo fabricante.
Un método para hacer que los restablecimientos de prueba sean menos atractivos es la limitación del software durante el período de prueba (por ejemplo, algunas funciones solo están disponibles en la versión registrada; las imágenes / videos / copias impresas creadas con el programa obtienen una marca de agua; el programa se ejecuta por solo 10 –20 minutos y luego se cierra automáticamente). Algunos programas tienen un período de prueba ilimitado, pero están limitados hasta su registro.
Ver también
- Ingeniería inversa
- Warez
- Grupos de Warez
- Lista de grupos de warez
Referencias
- ^ Kevelson, Morton (octubre de 1985). "Isepic" . ¡Ahoy! . págs. 71–73 . Consultado el 27 de junio de 2014 .
El origen del término probablemente radica en la actividad de los ladrones en el silencio de la noche.
- ^ Tulloch, Mitch (2003). Enciclopedia de seguridad de Microsoft (PDF) . Redmond, Washington: Microsoft Press. pag. 68. ISBN 0735618771.
- ^ Craig, Paul; Ron, Mark (abril de 2005). "Capítulo 4: Galletas" . En Burnett, Mark (ed.). Piratería de software al descubierto: secretos del lado oscuro revelados . Editor: Andrew Williams, Diseño de página y arte: Patricia Lupien, Editor de adquisiciones: Jaime Quigley, Editor de copias: Judy Eby, Editor técnico: Mark Burnett, Indexador: Nara Wood, Diseñador de portada: Michael Kavish. Estados Unidos de América: Syngress Publishing. págs. 75–76 . doi : 10.1016 / B978-193226698-6 / 50029-5 . ISBN 1-932266-98-4.
- ^ a b FLT (22 de enero de 2013). "The_Sims_3_70s_80s_and_90s_Stuff-FLT" .
Esta puede ser la única razón por la que ha llegado a la conclusión de que un flujo de inicio modificado es lo mismo que el comportamiento imitado de una protección, como lo hace una EMU.
- ^ Shub-Nigurrath [ARTeam]; ThunderPwr [ARTeam] (enero de 2006). "Cracking con cargadores: teoría, enfoque general y un marco". Revista CodeBreakers . Proyecto de Investigación Universitas-Virtualis. 1 (1).
Un cargador es un programa capaz de cargarse en la memoria y ejecutar otro programa.
- ^ Nigurrath, Shub (mayo de 2006). "Guía sobre cómo jugar con memoria de procesos, cargadores de escritura y Oraculumns". Revista CodeBreakers . Proyecto de Investigación Universitas-Virtualis. 1 (2).
- ^ FLT (29 de septiembre de 2013). "Test_Drive_Ferrari_Legends_PROPER-FLT" .
Test.Drive.Ferrari.Racing.Legends-SKIDROW fue lanzado con un "Loader" y no un exe agrietado. Es por eso que ve el archivo exe original renombrado a "TDFerrari_o.exe". Como esto no está permitido y en este caso ralentiza considerablemente el juego con mensajes de Xlive mientras se inicia y se juega, puede ver por qué hemos incluido un crackeado adecuado.
- ^ SKIDROW (21 de enero de 2013). "Test.Drive.Ferrari.Racing.Legends.Read.Nfo-SKIDROW" .
Sí, nuestro "método" es un cargador y nuestros competidores han utilizado el mismo método para "descifrar" juegos xlive como este.
- ^ "Batman.Arkham.City-FiGHTCLUB nukewar" . 2 de diciembre de 2011. Archivado desde el original el 13 de septiembre de 2014.
UNNUKED: game.plays.full no.issues crack.is.fine no.single.byte.patch.used protection.bypass.means.not.active.medios .la.protección eliminada.no.patea.en. ningún.punto.este.o.la.remoción.hace.no.diferencia [ZoNeNET]
- ^ Cheng, Jacqui (27 de septiembre de 2006). "Microsoft presenta una demanda por crack DRM" . Ars Technica .
- ^ Fravia (noviembre de 1998). "¿Es legal la ingeniería inversa?" .
- ^ Pearson, Jordan (24 de julio de 2017). "Los programadores están compitiendo para guardar el software de Apple II antes de que se extinga" . Tarjeta madre. Archivado desde el original el 27 de septiembre de 2017 . Consultado el 27 de enero de 2018 .
- ^ a b c d e Cyrus Peikari; Anton Chuvakin (12 de enero de 2004). Guerrero de la seguridad . "O'Reilly Media, Inc.". pag. 31 . ISBN 978-0-596-55239-8.
- ^ Ankit, Jain; Jason, Kuo; Jordan, Soet; Brian, Tse (abril de 2007). "Software Cracking (abril de 2007)" (PDF) . La Universidad de Columbia Británica - Ingeniería Eléctrica e Informática . Consultado el 27 de enero de 2018 . Cite journal requiere
|journal=
( ayuda ) - ^ Wójcik, Bartosz. "Revisión de herramientas de ingeniería inversa" . pelock.com . PELock. Archivado desde el original el 13 de septiembre de 2017 . Consultado el 16 de febrero de 2018 .
- ^ Cómo de Gamecopyworld
- ^ McCandless, David (1 de abril de 1997). "Guerras de Warez" . Cableado . ISSN 1059-1028 . Consultado el 4 de febrero de 2020 .