stringtranslate.com

Cracking de software

Ilustración de crack de software

El cracking de software (conocido como "breaking" principalmente en la década de 1980 [1] ) es un acto de eliminar la protección de copia de un software. [2] La protección de copia se puede eliminar aplicando un crack específico . Un crack puede significar cualquier herramienta que permita romper la protección del software, una clave de producto robada o una contraseña adivinada. El cracking de software generalmente implica eludir las restricciones de licencia y uso del software comercial mediante métodos ilegales. Estos métodos pueden incluir la modificación del código directamente mediante el desmontaje y la edición de bits, el intercambio de claves de producto robadas o el desarrollo de software para generar claves de activación. [3] Algunos ejemplos de cracks son: aplicar un parche o crear generadores de números de serie de ingeniería inversa conocidos como keygens , evitando así el registro y los pagos del software o convirtiendo una versión de prueba/demo del software en un software completamente funcional sin pagar por él. [4] El cracking de software contribuye al aumento de la piratería en línea , donde el software pirateado se distribuye a los usuarios finales [2] a través de sitios de intercambio de archivos como BitTorrent , One click hosting (OCH), o mediante descargas de Usenet , o descargando paquetes del software original con cracks o keygens. [4]

Algunas de estas herramientas se denominan keygen , patch , loader o no-disc crack . Un keygen es un generador de números de serie de productos hecho a mano que a menudo ofrece la posibilidad de generar números de serie funcionales con su propio nombre. Un patch es un pequeño programa informático que modifica el código de máquina de otro programa. Esto tiene la ventaja de que un cracker no incluye un ejecutable grande en una versión cuando solo se cambian unos pocos bytes. [5] Un loader modifica el flujo de inicio de un programa y no elimina la protección, sino que la elude. [6] [7] Un ejemplo conocido de un loader es un entrenador utilizado para hacer trampa en los juegos. [8] Fairlight señaló en uno de sus archivos .nfo que este tipo de cracks no están permitidos para los lanzamientos de juegos de la escena warez . [9] [6] [10] Una guerra nuclear ha demostrado que la protección puede no activarse en ningún momento para que sea un crack válido. [11]

El cracking de software está estrechamente relacionado con la ingeniería inversa porque el proceso de atacar una tecnología de protección de copia es similar al proceso de ingeniería inversa. [12] La distribución de copias crackeadas es ilegal en la mayoría de los países. Ha habido demandas judiciales por cracking de software. [13] Puede ser legal utilizar software crackeado en determinadas circunstancias. [14] Sin embargo, los recursos educativos para la ingeniería inversa y el cracking de software son legales y están disponibles en forma de programas Crackme .

Historia

Los programas informáticos son inherentemente caros de producir, pero baratos de duplicar y distribuir. Por lo tanto, los productores de programas informáticos generalmente intentaban implementar algún tipo de protección anticopia antes de lanzarlos al mercado. En 1984, Laind Huntsman, el jefe de desarrollo de programas informáticos de Formaster, una empresa de protección de programas informáticos, comentó que "ningún sistema de protección ha permanecido intacto por parte de programadores emprendedores durante más de unos pocos meses". [2] En 2001, Dan S. Wallach, profesor de la Universidad Rice , afirmó que "aquellos que están decididos a eludir la protección anticopia siempre han encontrado formas de hacerlo, y siempre lo harán". [15]

La mayoría de los primeros crackers de software eran aficionados a la informática que formaban grupos que competían entre sí para crackear y difundir software. Romper un nuevo sistema de protección de copia lo más rápido posible se consideraba a menudo una oportunidad para demostrar la superioridad técnica de uno, más que una posibilidad de ganar dinero. Los crackers de software normalmente no se beneficiaban materialmente de sus acciones y su motivación era el desafío en sí mismo de eliminar la protección. [2] Algunos aficionados poco cualificados tomaban software ya crackeado y editaban varias cadenas de texto sin cifrar para cambiar los mensajes que un juego le diría al jugador, a menudo algo considerado vulgar. Subir las copias alteradas a redes de intercambio de archivos proporcionaba una fuente de risas para los usuarios adultos. Los grupos de crackers 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 crackeaban y lanzaban. [16] Una vez que la competencia técnica se había ampliado de los desafíos del cracking a los desafíos de crear intros visualmente impactantes, se establecieron las bases para una nueva subcultura conocida como demoscene . La escena demos comenzó a separarse de la "escena warez" ilegal durante los años 90 y ahora se la considera una subcultura completamente diferente. Muchos crackers de software se han convertido más tarde en ingenieros de software extremadamente capaces; el profundo conocimiento del ensamblaje necesario para descifrar las protecciones les permite realizar ingeniería inversa de los controladores para trasladarlos de controladores binarios para Windows a controladores con código fuente para Linux y otros sistemas operativos libres . Además, debido a que la música y la introducción de los juegos eran una parte tan integral de los juegos, el formato de la 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 años 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 .

En 2017, un grupo de crackers de software inició un proyecto para preservar el software de Apple II eliminando la protección contra copia . [17]

+UCH

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 la ingeniería de código inverso (RCE), para avanzar en la investigación sobre RCE. También había enseñado y escrito 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. [18]

La adición del signo "+" delante del apodo de un inversor significaba la pertenencia a la +HCU. Entre los estudiantes de la +HCU se encontraban los mejores inversores de Windows de todo el mundo. [18] La +HCU publicaba un nuevo problema de ingeniería inversa cada año y un pequeño número de los encuestados con las mejores respuestas calificaban para un puesto de pregrado en la universidad. [18]

+Fravia era profesor en la +HCU. Su sitio web era conocido como "Las páginas de ingeniería inversa de +Fravia" y lo utilizaba para desafiar a los programadores, así como a la sociedad en general, a "realizar ingeniería inversa" para "lavar el cerebro de un materialismo corrupto y desenfrenado". En su apogeo, su sitio web recibía millones de visitantes al año y su influencia era "extensa". [18] En su sitio, +Fravia también mantenía una base de datos de los tutoriales generados por los estudiantes de +HCU para la posteridad. [19]

En la actualidad, la mayoría de los graduados de la +HCU han migrado a Linux y pocos se han quedado como inversores de Windows. La información de la universidad ha sido redescubierta por una nueva generación de investigadores y profesionales de RCE que han iniciado nuevos proyectos de investigación en el campo. [18]

Métodos

El crack de software más común es la modificación del binario de una aplicación para provocar o impedir una bifurcación 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 , [20] OllyDbg , GDB o MacsBug hasta que el cracker de software llega a la subrutina que contiene el método principal de protección del software (o desensamblando un archivo ejecutable con un programa como IDA ). [21] Luego, el binario se modifica utilizando el depurador o un editor hexadecimal como HIEW [22] o monitor de manera que reemplace un código de operación de bifurcación anterior con su complemento o un código de operación NOP de modo que la bifurcación clave siempre ejecute una subrutina específica o la salte. Casi todos los cracks de software comunes son una variación de este tipo. Una región de código a la que no se debe ingresar a menudo se denomina "chico malo", mientras que una que se debe seguir es un "chico bueno". [23]

Los desarrolladores de software propietario están constantemente desarrollando técnicas como la ofuscación de código , el cifrado y el código automodificable para hacer que la modificación binaria sea cada vez más difícil. [24] Incluso con estas medidas, los desarrolladores tienen dificultades para combatir el cracking de software. Esto se debe a que es muy común que un profesional publique un simple EXE crackeado o un instalador de Retrium para su descarga pública, eliminando la necesidad de que los usuarios inexpertos crackeen el software por sí mismos.

Un ejemplo específico de esta técnica es un crack que elimina el período de caducidad de una prueba limitada en el tiempo 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 y el proceso de alterar los archivos binarios originales se llama parcheo. [12] Hay cracks similares disponibles para software que requiere un dispositivo de hardware . Una empresa también puede romper la protección de copia de programas que ha comprado legalmente pero que están licenciados para un hardware particular, de modo que no haya riesgo de tiempo de inactividad debido a fallas de hardware (y, por supuesto, no hay necesidad de restringirse a ejecutar el software solo en hardware comprado).

Otro método es el uso de software especial como CloneCD para buscar el uso de una aplicación comercial de protección de copia. Después de descubrir el software utilizado para proteger la aplicación, se puede utilizar otra herramienta para eliminar la protección de 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 al disco duro de un usuario. Las aplicaciones comerciales de protección de copia populares que se pueden escanear incluyen SafeDisc y StarForce . [25]

En otros casos, puede ser posible descompilar un programa para obtener acceso al código fuente original o al código de un nivel superior al del código de máquina . Esto suele ser posible con lenguajes de script y lenguajes que utilizan compilación JIT . Un ejemplo es el cracking (o depuración) en la plataforma .NET, donde uno podría considerar manipular CIL para satisfacer sus necesidades. El bytecode de Java también funciona de manera similar, en el 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 . [26]

La ingeniería inversa avanzada para protecciones como SecuROM , SafeDisc , StarForce o Denuvo requiere que un cracker, o muchos crackers, dediquen mucho más tiempo a estudiar la protección, hasta encontrar cada falla dentro del código de protección y luego codificar sus propias herramientas para "desenvolver" la protección automáticamente de los archivos ejecutables (.EXE) y de biblioteca (.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). [27] Aunque estos cracks son utilizados por compradores legales de software, también pueden ser utilizados por personas que han descargado u obtenido de otra manera copias no autorizadas (a menudo a través de redes P2P ).

Piratería de software

El cracking de software condujo a la distribución de software pirateado en todo el mundo (piratería de software). Se estima que Estados Unidos perdió 2.300 millones de dólares en software de aplicaciones empresariales en 1996. Las tasas de piratería de software fueron especialmente frecuentes en países africanos, asiáticos, de Europa del Este y de América Latina. En algunos países como Indonesia, Pakistán, Kuwait, China y El Salvador, [28] el 90% del software utilizado era pirateado. [29]

Véase también

Referencias

  1. ^ Kevelson, Morton (octubre de 1985). "Isepic". ¡Ahoy! . págs. 71–73 . Consultado el 27 de junio de 2014 . El origen del término probablemente se encuentra en la actividad de los ladrones en el silencio de la noche.
  2. ^ abcd "¿Qué motiva a los piratas informáticos?" (PDF) . Sigi Goode y Sam Cruise, Universidad Nacional de Australia, Journal of Business Ethics (2006). Archivado (PDF) del original el 21 de octubre de 2022 . Consultado el 30 de abril de 2022 .
  3. ^ Tulloch, Mitch (2003). Enciclopedia de seguridad de Microsoft (PDF) . Redmond, Washington: Microsoft Press. pág. 68. ISBN 0735618771. Archivado desde el original (PDF) el 10 de agosto de 2014 . Consultado el 20 de julio de 2014 .
  4. ^ ab Kammerstetter, Markus; Platzer, Christian; Wondracek, Gilbert (16 de octubre de 2012). "Vanidad, cracks y malware". Actas de la conferencia ACM de 2012 sobre seguridad informática y de las comunicaciones . Raleigh, Carolina del Norte, EE. UU.: ACM. págs. 809–820. doi :10.1145/2382196.2382282. ISBN 978-1-4503-1651-4. Número de identificación del sujeto  3423843.
  5. ^ Craig, Paul; Ron, Mark (abril de 2005). "Capítulo 4: Crackers". En Burnett, Mark (ed.). La piratería de software al descubierto: secretos del lado oscuro revelados . Editorial: Andrew Williams, Diseño de página y arte: Patricia Lupien, Editor de adquisiciones: Jaime Quigley, Corrector de estilo: Judy Eby, Editor técnico: Mark Burnett, Indexador: Nara Wood, Diseñador de portada: Michael Kavish. Estados Unidos de América: Syngress Publishing. pp. 75–76. doi :10.1016/B978-193226698-6/50029-5. ISBN 1-932266-98-4.
  6. ^ ab FLT (22 de enero de 2013). "The_Sims_3_70s_80s_and_90s_Stuff-FLT". Archivado desde el original el 14 de septiembre de 2014 . Consultado el 13 de septiembre de 2014 . Esta puede ser la única razón por la que has 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.
  7. ^ Shub-Nigurrath [ARTeam]; ThunderPwr [ARTeam] (enero de 2006). "Cracking con cargadores: teoría, enfoque general y un marco de trabajo". Revista CodeBreakers . 1 (1). Proyecto de investigación Universitas-Virtualis. Un cargador es un programa capaz de cargar en memoria y ejecutar otro programa.
  8. ^ Nigurrath, Shub (mayo de 2006). "Guía sobre cómo jugar con la memoria de procesos, cargadores de escritura y Oracle". Revista CodeBreakers . 1 (2). Proyecto de investigación Universitas-Virtualis.
  9. ^ FLT (29 de septiembre de 2013). "Test_Drive_Ferrari_Legends_PROPER-FLT". Archivado desde el original el 14 de septiembre de 2014. Consultado el 13 de septiembre de 2014. Test.Drive.Ferrari.Racing.Legends-SKIDROW se lanzó con un "Loader" y no con un exe crackeado. Es por eso que ves que el exe original se renombró como "TDFerrari_o.exe". Como esto no está permitido y en este caso ralentiza considerablemente el juego con mensajes de Xlive al iniciar y jugar, puedes ver por qué hemos incluido un exe crackeado.
  10. ^ SKIDROW (21 de enero de 2013). "Test.Drive.Ferrari.Racing.Legends.Read.Nfo-SKIDROW". Archivado desde el original el 14 de septiembre de 2014. Consultado el 13 de septiembre de 2014. Sí, nuestro "método" es un cargador y nuestros competidores han utilizado el mismo método para "craquear" juegos xlive como este.
  11. ^ "Batman.Arkham.City-FiGHTCLUB nukewar". 2 de diciembre de 2011. Archivado desde el original el 13 de septiembre de 2014. UNNUKED: el juego se ejecuta a pleno rendimiento sin problemas el crack está bien no se utiliza un solo parche de byte la omisión de protección significa que no está activo significa que se ha eliminado la protección no se activa en ningún momento esto o la eliminación no marca ninguna diferencia [ZoNeNET]
  12. ^ ab Eilam, Eldad (2005). Reversión: secretos de la ingeniería inversa. Elliot J. Chikofsky. Indianápolis, IN: Wiley. ISBN 0-7645-9768-X.OCLC 80242141  .
  13. ^ Cheng, Jacqui (27 de septiembre de 2006). «Microsoft presenta una demanda por piratería de DRM». Ars Technica . Archivado desde el original el 15 de julio de 2014. Consultado el 15 de junio de 2017 .
  14. ^ Fravia (noviembre de 1998). "¿Es legal la ingeniería inversa?". Archivado desde el original el 5 de marzo de 2022.
  15. ^ Wallach, DS (octubre de 2001). «La tecnología de protección de copias está condenada». Computer . 34 (10): 48–49. doi :10.1109/2.955098. Archivado desde el original el 21 de enero de 2022 . Consultado el 10 de marzo de 2023 .
  16. ^ Reunanen, Markku; Wasiak, Patryk; Botz, Daniel (26 de marzo de 2015). «Crack Intros: Piracy, Creativity and Communication». Revista Internacional de Comunicación . 9 : 20. ISSN  1932-8036. Archivado desde el original el 17 de junio de 2022. Consultado el 17 de junio de 2022 .
  17. ^ Pearson, Jordan (24 de julio de 2017). «Los programadores compiten para salvar el software de Apple II antes de que se extinga». Placa base. Archivado desde el original el 27 de septiembre de 2017. Consultado el 27 de enero de 2018 .
  18. ^ abcde Cyrus Peikari; Anton Chuvakin (12 de enero de 2004). Security Warrior . "O'Reilly Media, Inc.", pág. 31. ISBN 978-0-596-55239-8.
  19. ^ Vianello, Francesco. «Página de inicio de la Academia». Páginas de archivo de ingeniería inversa de Fravia . Archivado desde el original el 26 de septiembre de 2022. Consultado el 17 de mayo de 2022 .
  20. ^ Ankit, Jain; Jason, Kuo; Jordan, Soet; Brian, Tse (abril de 2007). "Software Cracking (abril de 2007)" (PDF) . The University of British Columbia - Ingeniería eléctrica y de computación. Archivado (PDF) del original el 19 de marzo de 2018. Consultado el 27 de enero de 2018 . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  21. ^ Cerven, Pavol (2002). Proteja su software contra los piratas informáticos . No Starch Press. ISBN 1-886411-79-4.
  22. ^ "Protección de códigos de software mediante guardias" (PDF) . Hoi Chang, Mikhail J. Atallah, CERIAS, Purdue University (2001). Archivado (PDF) desde el original el 10 de marzo de 2023 . Consultado el 6 de junio de 2022 .
  23. ^ "Revertir un binario automodificable con radare2". Megabeets . 14 de enero de 2018 . Consultado el 29 de junio de 2023 .
  24. ^ Ferguson, Justin; Kaminsky, Dan (2008). Ingeniería inversa de código con IDA Pro. Burlington, MA: Syngress Pub. ISBN 978-0-08-055879-0. OCLC  272383172. Archivado desde el original el 10 de marzo de 2023 . Consultado el 8 de junio de 2022 .
  25. ^ "Realizar copia de seguridad de CD/DVD de juegos protegidos". GameCopyWorld . Archivado desde el original el 5 de junio de 2008 . Consultado el 11 de junio de 2008 .
  26. ^ Canzanese, Raymond J. Jr.; Oyer, Matthew; Mancoridis, Spiros; Kam, Moshe. "Un estudio de las herramientas de ingeniería inversa para el entorno de Microsoft Windows de 32 bits" (PDF) . Facultad de IngenieríaUniversidad de Drexel. Archivado desde el original (PDF) el 25 de marzo de 2022 . Consultado el 7 de junio de 2022 .
  27. ^ McCandless, David (1 de abril de 1997). «Warez Wars». Wired . ISSN  1059-1028. Archivado desde el original el 16 de septiembre de 2021. Consultado el 4 de febrero de 2020 .
  28. ^ Gopal, Ram D.; Sanders, G. Lawrence (septiembre de 2000). "Piratería global de software: no se puede sacar sangre de un nabo". Comunicaciones de la ACM . 43 (9): 82–89. doi : 10.1145/348941.349002 . ISSN  0001-0782. S2CID  6706490.
  29. ^ Gopal, Ram D.; Sanders, G. Lawrence (1998). "Piratería internacional de software: análisis de cuestiones clave e impactos". Investigación en sistemas de información . 9 (4): 380–397. doi :10.1287/isre.9.4.380. ISSN  1047-7047. JSTOR  23011033.