¿Cómo funcionan los códigos de software?

10

Los he visto muchas veces, con diferentes tipos de software, pero lo único que siempre me he preguntado es cómo los keygens del software saben qué clave generar. Conozco el principio básico: el keygen busca en algún lugar de los archivos de instalación del software y crea una clave que coincide con algún archivo cifrado que permite que el programa funcione. Pero quería saber cómo lo hacen y cómo evitarlo. Esta es realmente una pregunta de varias partes.

  
  1. ¿Cómo funciona el sistema de claves?   
    • ¿Cómo suelen los programadores crear un software que funcione en base a una clave? Soy un programador intermedio, pero nunca aprendí mucho del aspecto de seguridad / antipiratería. ¿Cómo crean y / o reconocen las claves para permitir que el software comience a funcionar?
    •   
  2.   
  3. ¿Dónde suele buscar este "archivo cifrado"?

         
    • ¿Se encuentra en un archivo físico en la computadora o en una base de datos del sitio al que llama?
    •   
  4.   
  5. ¿Qué hacen las empresas para cifrar ese archivo?

         
    • Me gustaría decir que la clave debe almacenarse en algo más que texto simple, ¿qué hacen para mantenerla encriptada?
    •   
  6.   
  7. ¿Qué método utiliza el keygen para crear la clave?   
    • He jugado un poco con un software de descifrado de contraseñas como "cain & able" y he notado que con algunos de los métodos de descifrado de contraseñas, como fuerza bruta y diccionario, me da ETA. En años, sin embargo, los keygens parecen crear claves al instante. ¿Están utilizando diferentes métodos por completo?
    •   
  8.   
  9. ¿Qué medidas pueden tomar las empresas para evitar el uso de claves en software pirateado?   
    • Estoy empezando a escribir mi propio software para ser distribuido, me preguntaba qué métodos existentes y relativamente fáciles de usar puedo usar para prevenir
    •   
  10.   
    
pregunta Ephraim 01.04.2012 - 08:31
fuente

4 respuestas

8

¿Cómo funciona el sistema de claves?

Bueno depende, hay muchas implementaciones. Una de ellas se analizó en stackoverflow :

Suponiendo que no quieres hacer una compilación especial para cada usuario, entonces:

  • Genérese una clave secreta para el producto
  • Toma el nombre del usuario
  • Concatene el nombre del usuario y la clave secreta y el hash con (por ejemplo) SHA1
  • Descomprima el hash SHA1 como una cadena alfanumérica. Esta es la "clave de producto" del usuario individual
  • Dentro del programa, haga el mismo hash y compare con la clave del producto. Si es igual, OK.

Nota: cada esquema de teclas puede ser crackeado. Es por eso que muchas herramientas utilizan la validación en línea.

¿Dónde suele buscar este "archivo cifrado"?

Por lo general, no hay ningún archivo cifrado cuando se usa el método anterior. Puede haber otros métodos para generar claves con otro algoritmo, pero nunca almacenan todas las claves en el programa.

¿Qué hacen las empresas para cifrar ese archivo?

Bueno, si se refiere al almacenamiento de la clave que el usuario escribió en su sistema, a veces se guarda texto sin formato en un archivo de configuración. A veces usan cifrado simétrico (como AES) con una clave codificada para cifrar este archivo.

¿Qué método utiliza el keygen para crear la clave?

Porque hay personas que pueden averiguar el esquema que usa el programa y simplemente implementarlo en su propio keygen.

¿Qué medidas pueden tomar las empresas para evitar el uso de claves en software pirateado?

Activación en línea, pero cuanto más difícil sea para el cliente utilizar el software, menos probable será que lo compre. Al final, no hay una sola pieza de software que sea a prueba de piratería . Si lo hubiera, empresas como Adobe y Microsoft lo estarían contratando al instante.

    
respondido por el Lucas Kauffman 01.04.2012 - 09:07
fuente
6

Los números de serie para software de computadora tienen un patrón específico, que permite al instalador o aplicación detectar si es una clave legítima. Un ejemplo muy simple sería que cada número de serie tiene exactamente tres apariciones del número 5, por lo que 1932-1253-2319-5512 sería un número de serie funcional. En un escenario de la vida real, las relaciones entre los números serían, por supuesto, más complicadas.

El software enviado contiene un algoritmo que verifica si una serie es válida o no. El creador del software tiene una pieza de software que le permite crear números de serie para el producto.

Para crear un keygen, un grupo cracker (personas especializadas en romper esquemas de protección de copia) analizan el programa ejecutable para encontrar la parte que verifica la serie. Luego reconstruyen el algoritmo para crear las publicaciones seriadas basadas en el código de verificación. El keygen finalizado es una aplicación que aplica el algoritmo para crear un número de serie.

A veces, los keygens no contienen realmente el algoritmo, sino una lista de números de serie válidos, de los cuales uno se selecciona al azar.

El keygen para Windows XP en los paquetes de servicio posteriores fue más complicado, porque Microsoft verificó no solo si una clave era válida, sino también si se había vendido con una copia y no estaba en uso en otra computadora. El keygen envió solicitudes masivas al servidor de Microsoft para verificar si era una clave de trabajo o no.

    
respondido por el Anna Ashmore 11.04.2012 - 20:33
fuente
2
  

¿Cómo funciona el sistema de claves?

En la forma más común if (some-complex-or-not conditions-here) then (OK) . Complejidad de la condición marcada limitada solo por tu fantasía

  

¿Dónde suele buscar este "archivo cifrado"?

No hay patrones comunes , dónde y cómo almacenar y leer esta información. Puede ser un archivo y no un archivo (clave de registro, por ejemplo, en el caso de Windows)

  

¿Qué hacen las empresas para cifrar ese archivo?

Practivo habitual: nunca lo almacene como texto plano, use métodos irreversibles de transformación antes de almacenar, pero - con la activación de la clave, incluso el almacenamiento de texto simple puede ser a prueba de balas: la clave robada, una vez activada, no funcionará a partir del segundo registro (método abusable y hackeable, pero puede funcionar hasta cierto punto)

  

¿Qué método utiliza el keygen para crear la clave?

El método de ingeniería inversa para verificar la validez ayuda en la ingeniería inversa algoritmo de crear datos-clave

  

¿Qué medidas pueden tomar las empresas para evitar el uso de keygens en   software pirateado?

No técnicamente - precio razonable para los productos. En este caso, los keygens aparecerán (pueden) de todos modos, pero serán más "solo por diversión" game para los equipos de crack, que solicitó (y usó con impacto directo) por el producto de consumo masivo

.

Técnicamente: evitando que se ejecute bajo el depurador, combinado con el código cifrado en el archivo (con descifrado en la memoria, posible - multicapa para algunas partes sensibles), cadenas de manipulaciones de memoria, verificación en línea de las claves en el almacenamiento externo (ver anterior métodos, que se aplican por separado al verificador también) ...

    
respondido por el Lazy Badger 02.04.2012 - 14:10
fuente
-3

Primero que todo, le sugiero que deje de ver esos archivos de keygen, ya que son programas informáticos pirateados (en su mayoría / a veces) acompañados de alguna otra imagen de aspecto no dañino Los archivos / nfo / lnk que en su capacidad total de las intenciones de los piratas informáticos / hackers podrían ser diseñados especialmente para infectar su propia máquina.

Es posible que hayas oído hablar de img / lnk / otros archivos que infectan cajas justo cuando Explorer intenta acceder a ellos. Luego están los keygens binarios que se supone que deben ejecutar y realizar cualquier cosa en su caja, a la derecha.

  

Ahora, para sus consultas ...

     

Tienes que entender que no hay una global específica   cosa del archivo / memoria-ubicación / etc para ir.

     

Diseñar un keygen para software tiene dos formas básicas principales:

     
  • Depurando la acción de licencias del software original usando algún depurador de proceso avanzado () para buscar ubicaciones de memoria interactuadas   por la aplicación para almacenar / coincidir con la clave. Entonces trata de trabajar a tu manera   alrededor. Es necesario que adquieras buenas habilidades de lenguaje ensamblador para ser increíble   en estos.
  •   
  • Invierta la aplicación de ingeniería inversa para descubrir el método involucrado y luego actúe en consecuencia.
  •   
    
respondido por el AbhishekKr 01.04.2012 - 10:37
fuente

Lea otras preguntas en las etiquetas