Cómo elegir un código digital para un programa. Clave de licencia de un programa o juego. Hackeo físico del programa.

Al seleccionar una contraseña, nadie garantiza el éxito de esta empresa). Sin embargo, existen algunas reglas que pueden aumentar significativamente sus posibilidades de obtener un resultado favorable en este asunto.

Dónde empezar

  1. A menudo, no sólo se requiere una contraseña, sino también un inicio de sesión. Si está intentando encontrar un inicio de sesión, por ejemplo, para entrar en la computadora de su colega, use su nombre. Si no funciona, mire cómo se llama esta persona en las redes sociales (Twitter, Facebook, Vkontakte, etc.); a menudo funciona al 100%.
  2. Vea si existen restricciones en la longitud de la contraseña que ingresa o los caracteres utilizados. A menudo, la contraseña debe tener al menos seis caracteres y contener al menos un número. Si no sabe si existen tales restricciones, intente crear su propia cuenta, por ejemplo en el sitio para el cual seleccione una contraseña; durante el registro se le informará sobre los requisitos para las contraseñas.
  3. Solicite una pregunta de sugerencia. A menudo, las páginas de ingreso de contraseñas tienen esta característica. Como regla general, se utilizan como preguntas rápidas preguntas como “¿Apellido de soltera de la madre?”, “¿Cómo se llama su mascota?”, “¿En qué ciudad nació?”. etc. Esto reducirá significativamente opciones posibles palabras, ¡especialmente si sabes al menos algo sobre la persona!

Usa trucos

  1. Sólo adivina la contraseña. La mayoría de las veces la gente usa lo mismo. contraseñas estándar. Su lista se conoce desde hace mucho tiempo y se actualiza constantemente). A continuación encontrarás las 25 contraseñas más comunes (según Splash Data):
    contraseña
    123456
    12345678
    abc123
    QWERTY
    mono
    Déjame entrar
    continuar
    111111
    béisbol
    Te amo
    confianzano1
    1234567
    luz solar
    maestro
    123123
    bienvenido
    sombra
    ashley
    fútbol americano
    Jesús
    Miguel
    ninjas
    mustango
    contraseña1

    Aquí hay algunas estadísticas:
    El 4,7% de los usuarios utiliza contraseña;
    El 8,5% de los usuarios elige una de dos opciones: contraseña o 123456;
    El 9,8% de los usuarios elige una de tres opciones: contraseña, 123456 o 12345678;
    El 14% de los usuarios elige una de las 10 contraseñas más populares;
    El 40% de los usuarios elige una de las 100 contraseñas más populares;
    El 79% de los usuarios elige una de las 500 contraseñas más populares;
    El 91% de los usuarios elige una de las 1.000 contraseñas más populares.

  2. Aplicar reglas de selección conocidas. Se ha establecido experimentalmente que si una contraseña contiene números, será el número 1 o 2, y estará al final de la misma. Además, si la contraseña tiene una letra mayúscula, estará al principio de la palabra, seguida de una vocal.
  3. El género de una persona puede proporcionar una pista. Se sabe que las mujeres prefieren utilizar nombres personales (el nombre de su marido o amante) como contraseñas, y los hombres prefieren utilizar sus pasatiempos e intereses (el nombre de su equipo deportivo favorito, marca de automóviles, etc.).

Utilice información relevante para la persona.

  1. Nombres propios: nombres de cónyuges, familiares, mascotas, deportistas, apodos de hijos, etc.
  2. Aficiones e intereses: nombres de programas favoritos, personajes de películas, profesiones, platos culinarios, etc.
  3. Números y fechas importantes: cumpleaños, dirección, número de teléfono, etc.

Descargo de responsabilidad: todo lo escrito a continuación está escrito únicamente con fines educativos y de investigación, así como para comprender los mecanismos de protección contra la piratería. El autor en ningún caso recomienda utilizar esta informacion para hackear programas.

En este artículo quiero hablar sobre tres formas principales y media de hackear programas .NET. El objetivo que persigo es ayudar a los desarrolladores a comprender mejor los mecanismos de seguridad de sus programas, es decir. identificar las amenazas más obvias y tomar las medidas adecuadas (o no).

No entraré en detalles ni utilizaré herramientas de piratería complejas. Todo se describirá "para tontos", es decir. Todas las herramientas serán sencillas, de fácil acceso y gratuitas. Y el principal será Reflector, un descompilador de programas para .NET

Como conejillo de indias, elegí Expresso, un analizador expresiones regulares. Este programa Es gratis, la licencia no parece decir nada sobre piratería, pero sin registro solo funcionará durante 60 días. En otras palabras, el daño causado por piratear este programa es mínimo y su estructura interna es muy adecuada para el entrenamiento. Espero que el autor de este programa no se sienta ofendido por mí.


Primero, un breve programa educativo sobre la estructura del programa .NET, para aquellos que no están familiarizados con el desarrollo de este Framework: todo el código escrito en cualquier lenguaje .NET (C#, Visual Basic, F#, Delphi.NET) se compila en un lenguaje intermedio especial, generalmente llamado IL o MSIL. Esto es algo así como un ensamblador, sólo que muy inteligente y con instrucciones muy poderosas. Y este, en principio, es el mismo lenguaje igual que C#, solo que la sintaxis es peor (y hay más posibilidades). Además, el programa .NET utiliza metadatos activamente, es decir. Toda la información sobre clases, métodos, propiedades, atributos y todo lo demás se guarda en el archivo ejecutable.
Aquellos. de hecho, descompilar un programa no es un concepto muy correcto en este caso. Ya todo está en formato abierto, y las herramientas en forma de Reflector se dedican a llevar las construcciones MSIL a las construcciones correspondientes de C# u otro lenguaje, aumentando la legibilidad del código.

Pasemos al hackeo real.

0. Reinicio de prueba

En realidad, esto ni siquiera es un truco, sino una forma semilegal de extender la vida útil de un programa inactivado. Consiste en que existe un lugar donde se almacena y modifica/destruye la fecha del primer lanzamiento. Después de esto, podrás seguir utilizando el programa hasta la próxima fecha límite.

Miremos nuestro sujeto de prueba con un reflector:
Después de recorrer un poco el código, encontramos una línea interesante en el constructor MainForm.


Abra el editor de registro, vaya a HKEY_CURRENT_USER\Software\Ultrapico\Expresso y vea las siguientes claves:


Los eliminamos y obtenemos otros 60 días de trabajo.

Esta opción, por supuesto, es simple y obvia, pero incluso si fuera más complicada, tomaría un poco más de tiempo en el reflector descubrir todos los lugares donde está escrita la información y borrarlos.

Consejos para los desarrolladores que intentarán escribir datos en un lugar oculto: escriban con más cuidado, de lo contrario todo puede convertirse en problemas para los usuarios comunes que, por alguna razón, no tienen este lugar o no tienen suficientes derechos sobre él.

1. Escribir generador de claves

La opción más terrible para el desarrollador y la más agradable para el usuario final. El programa se considera autorizado y no es necesario realizar ningún gesto de miedo.

Abrimos el reflector y buscamos el código de las clases que contienen Licencia o Registro, vemos:

Cuando ingresa un nombre y un código, se calcula un hash por nombre y se compara con el código.


Este hash usa DES y todo tipo de prefijos.


Los bytes se convierten en una cadena mediante este método.

Ahora todo está claro, abra el IDE y copie todos los fragmentos de código necesarios (o impleméntelo usted mismo). Todo lo que queda es averiguar cuáles son los valores de los parámetros de implementación Prefix, Suffix y MyDES. No los daré, son detalles técnicos.

Como resultado, generamos una clave para cualquier nombre y vemos:


¡Bingo!

La protección contra keygens es simple y obvia: utilice alguna forma de cifrado asimétrico. Aquellos. hágalo de modo que sea imposible generar un código sin conocer la clave privada, y esta clave se encuentra en un solo lugar: con el autor del programa.

2. Usando un envoltorio

Comprobar la exactitud de la licencia es una tarea bastante lenta y problemática. Por lo tanto, los desarrolladores de programas generalmente verifican la licencia una vez y luego usan el indicador resultante: válida/no válida (como opción, qué tan válida es, si se permiten varios tipos de licencias que difieren en capacidades). Aquí puedes jugar con esto usando el siguiente algoritmo:
  1. Indicar al programa que la licencia ya ha sido verificada
  2. Indicar al programa que la licencia es correcta
¿Cómo hacerlo? Ya mencioné la presencia de metadatos en archivos ejecutables Al principio usaremos esto. Veamos cómo se inicia el programa y cómo se comprueba la licencia:


No hay nada interesante con el lanzamiento, pero la verificación muestra que si el programa ya está registrado, entonces considera que todo está bien y no hace más trabajo para determinar la exactitud de la licencia.

Usemos esto:
Creemos un nuevo proyecto, agreguemos Referencia a Expresso.exe y ejecútelo nosotros mismos:


Vamos a ver que pasó:


Bueno, quién lo dudaría.

En este caso, todo resultó simple, pero si el autor del programa hubiera reemplazado las propiedades públicas por privadas, entonces solo habría tenido que usar Reflection para acceder y todo se habría reducido al problema original.

Creo que está claro cómo puede intentar protegerse de esto: verifique periódicamente la licencia, observe el entorno desde el que se ejecuta el programa y haga imposible configurar la variable requerida.

Pero todas estas protecciones harán que el atacante utilice

3. Hackeo físico del programa.

Aquí todo se está poniendo serio. Todo el programa se descompila en MSIL y luego se vuelve a ensamblar (¿recuerdas que escribí que MSIL es el mismo lenguaje que C#?). Para descompilar, necesitamos una utilidad del SDK llamada ildasmo, y para la compilación el compilador es de .NET Framework ilasmo.

Inicie ildasm, abra Expresso.exe y guarde el volcado en un archivo .il. Encontramos el método IsRegistered ya comentado y agregamos un poco de nuestro código (sin etiquetas):

Luego tomamos ilasm y volvemos a armar todo (sin olvidar conectar los recursos).

Qué hace este código: instala Nombre deseado para el registro (opcional) y devuelve el estado de que todo está bien.
Para que quede más claro, así es como se ve en el reflector, en C#

Aquellos. Es bastante obvio que ahora todo estará bien:

Un poco sobre el código en MSIL: es una máquina de pila que no tiene registros, todas las operaciones tienen la forma: insertar la cantidad requerida de parámetros en la pila, ejecutar una función que toma la cantidad requerida de parámetros y coloca el resultado. Bueno, y viceversa: establezca el valor de la variable en lo que está en la pila. Para comprender mejor cómo funciona todo esto, recomiendo una técnica simple: escribir un pequeño programa en un lenguaje familiar, compilarlo, ver qué sucede en MSILe y comprender las construcciones del lenguaje.
Al mismo tiempo, algunas cosas en MSIL se pueden hacer muy bien, por ejemplo, intercambiar dos variables: 4 líneas bonitas (menos en C#, pero feas).

Lo que sacrifica el atacante: la firma del programa, ahora ya no es la del autor, sino la suya. En algunos casos, esto supone un problema si el programa utiliza muchas bibliotecas. Entonces el malvado hacker tendrá que desmontarlos todos y volver a montarlos, pero si se las arregla, tendrá "su propia" versión firmada del programa. su llave.

En realidad, hay poca protección contra toda esta desgracia: llevar a cabo la ofuscación o mover parte de las comprobaciones lógicas/de seguridad al código nativo.

Conclusión

Creo que les dije con qué facilidad se puede romper todo en .NET si el creador no ha hecho un esfuerzo por proteger su programa. Y usted decide si vale la pena crear protección y dedicarle tiempo y recursos. O tal vez simplemente cree un sistema basado en web o una versión limitada gratuita. Depende de los desarrolladores decidir.

Varios generadores (contraseñas, apodos, números al azar y códigos) son muy populares, ya que son ampliamente utilizados por administradores públicos, propietarios de organizaciones y usuarios comunes para diversos fines.

Generador de códigos promocionales– un servicio específico que pueden utilizar los propietarios de organizaciones y empresas comerciales para realizar promociones y sorteos.

Por ejemplo, utilizando un código promocional, se pueden ofrecer descuentos, los certificados de regalo pueden ser válidos en las tiendas y en otros servicios se pueden utilizar para brindar acceso a una gama más amplia de servicios.

Elección

Para aquellos usuarios que utilizan códigos promocionales con bastante frecuencia, es importante encontrar un generador funcional y conveniente que cumpla con todos los requisitos.

Estos servicios se implementan tanto como aplicaciones para redes sociales(lo cual resulta especialmente conveniente a la hora de realizar promociones entre suscriptores públicos, por ejemplo), tanto online como en forma de programas instalados en un ordenador (lo que en la mayoría de los casos resulta completamente inconveniente).

Se diferencian en la configuración y la lista de funciones.

Un generador elegido correctamente puede simplificar significativamente el proceso de organización de promociones y ofertas especiales, así como sorteos.

Características principales

Todos los generadores populares (y no tan populares) se diferencian entre sí en una serie de parámetros.

Entre ellos se encuentran indicadores como el número de caracteres en el código, la presencia de un prefijo y un sufijo (que simplifica la clasificación y división de códigos en grupos), utilizados en, etc.

Además, diferentes servicios ofrecen diferentes números de códigos para la generación simultánea (presionando un botón).

Básico especificaciones Los servicios que se analizan a continuación se muestran en la tabla.

tabla 1 . Características comparativas de varios servicios para generar códigos promocionales.
NombreLicenciaPrefijo, postfijoSeleccionar los símbolos a utilizarSeleccionar el número de caracteresGeneración rápida de múltiples códigos.
GetEasyCode.ruPrueba gratuita, pago avanzado
AleatorizarGratisNo
tomar el códigoGratisSólo prefijo
AcademiaGratisNoNoNoNo
Generador ukrbio.comGratisNoLimitado
Estudio F1GratisNoLimitado
InglobalGratisSólo prefijoLimitado

En base a estas características, es más fácil tomar la decisión correcta.

GetEasyCode.ru

Este es un sitio web de una página de carga rápida con un generador rápido y estable.

Casi siempre disponible.

La principal característica distintiva del servicio.– máxima funcionalidad y alta velocidad.

El menú es sencillo e intuitivo, el diseño es agradable y no distrae la atención del trabajo.

  • Le permite crear un prefijo y un sufijo;
  • Puedes generar varios códigos a la vez (del 1 al 100);
  • El usuario puede elegir qué símbolos utilizar en el código.
  • Cambio inconveniente del número de códigos;
  • Provisión paga de 100 a 999 códigos: cuesta 299 rublos (en el momento de escribir este artículo);
  • Provisión paga de 1000 códigos o más: cuesta 999 rublos (también en el momento de escribir este artículo);
  • Debes presionar constantemente el botón “No soy un robot”.

Esto es lo que dicen los usuarios que ya han usado este generador: "Servicio conveniente y multifuncional", "Precios de generación bastante altos", "Es conveniente usar este generador, solo lo uso".

Aleatorizar

Este sitio está diseñado para generar aleatoriamente varias contraseñas, códigos promocionales, números, etc.

Es multifuncional y conveniente para quienes realizan diversas bromas o usan muchas contraseñas.

Este generador se posiciona como un servicio premium para tiendas online.

No es el más fácil de usar, pero es un servicio gratuito y con muchas funciones.

La característica principal del servicio es el llamado modo de generación de código "individual".

En este modo, puede escribir código existente, indicando que solo es necesario cambiar ciertos caracteres.

  • Posibilidad de registrar un prefijo;
  • Posibilidad de ingresar manualmente los símbolos utilizados;
  • Disponibilidad de un modo de configuración de generación "individual";
  • Podrás generar hasta 10 millones de códigos y descargarlos en un formato u otro;
  • Indicando la probabilidad de selección para códigos de diferentes tipos.
  • Incapacidad para registrar un sufijo;
  • Número reducido de caracteres limitado (de 4 a 16);
  • Se generan al menos 1000 códigos.

Los usuarios responden al servicio de la siguiente manera: "Es conveniente que puedas generar muchos códigos a la vez", y el menú no es muy conveniente".

Academia

Este generador está disponible para su uso en el enlace https://academy.ru/personal/promo-gen/.

Este es un sitio multifuncional, entre sus múltiples funciones se encuentra, entre otras cosas, un generador de códigos promocionales.

Un diseño bastante complejo y muchas páginas hacen que el servicio tarde mucho en cargarse.

Es importante entender que este sitio no es un generador especializado. Puede ayudar para una generación única.

Pero es imposible utilizarlo a gran escala.

  • Generación rápida sin configuraciones innecesarias;
  • Copia de código conveniente presionando un botón;
  • Base de datos lista de códigos promocionales no utilizados.
  • Una cantidad muy pequeña de funciones: no se puede seleccionar la cantidad o la cantidad de códigos generados simultáneamente, etc.;
  • No puede especificar un prefijo o postfijo, el diseño del código también lo selecciona el sistema de forma predeterminada;
  • Hay bastantes enlaces diferentes y complicaciones de diseño en la página, lo que hace que el trabajo no sea demasiado sencillo.

Los usuarios hablan así del generador: "Puede que esté bien recibir un código promocional, pero no está claro cómo utilizarlo más ampliamente", "Muy incómodo y con pocas funciones".

Generador ukrbio.com

Este es un generador de una página con un menú simple y una interfaz intuitiva.

Tiene un diseño sencillo y agradable, gracias al cual la página carga rápidamente.

El servicio funciona de manera estable y proporciona un conjunto suficiente de funciones.

Este servicio le permite generar combinaciones solo de números, solo de letras, mixtas, incluyendo o.

También puedes ajustar el caso de las letras y mostrar todos los códigos en un formato u otro.

  • Menú sencillo y diseño de página web minimalista;
  • Creación gratuita de una gran cantidad de códigos (de 1 a 9999 piezas);
  • Existen posibilidades bastante amplias para personalizar el formato y la apariencia de códigos futuros.
  • <Рис. 8 Studio F1>

    Este servicio de generación multifuncional está disponible en https://studiof1.ru/blog/developing/passgen/.

    El sitio web es un recurso multifuncional con servicios para la promoción del sitio web, etc.

    El recurso tiene un diseño bastante simple y es conveniente de usar en los casos en que el usuario, además de promociones, realiza sorteos y otros eventos para atraer audiencia.

    En sentido estricto, este servicio se llama generador de contraseñas y es capaz de crear combinaciones bastante complejas y variadas que pueden usarse como códigos promocionales.

    Después de todo, este servicio le permite utilizar casi todas las mismas configuraciones que ofrece el generador de códigos promocionales.

    • Posibilidad de seleccionar la longitud de la contraseña y su composición (letras minúsculas y mayúsculas, números, signos);
    • Capacidad para generar varios códigos de contraseña a la vez;
    • Este sitio tiene muchas funciones auxiliares, a menudo necesarias, a su alcance.
    • Incapacidad para establecer prefijos y postfijos;
    • No es posible limitar o seleccionar los caracteres utilizados;
    • Todos los códigos están escritos en una palabra sin espacios y tienen aproximadamente el mismo apariencia, no se pueden descargar, solo copiarlos como texto sin formato, lo cual es un inconveniente si hay una gran cantidad de ellos.

Imaginemos una situación en la que tuvieras que “destruir Windows” (eliminar el sistema operativo sistema de ventanas) e instale uno nuevo. Si logra hacer frente a esto, puede surgir un problema como la instalación de programas y juegos que ya le resultan familiares. Es bueno si están disponibles gratuitamente y son gratuitos, pero qué hacer cuando pagaste por un programa (o juego) y cuando lo reinstalas, requiere que clave de licencia(y esto es bastante normal)? Es bueno que lo hayas guardado en algún lugar y lo hayas anotado, pero ¿qué pasa si perdiste o no dejaste la clave? En este caso, existen dos soluciones.

1) Escriba en apoyo de este programa y explique la situación. Si los desarrolladores son normales y les demuestras que realmente compraste su producto, entonces te ayudarán.
2) Usa uno programa gratuito, sobre el cual habrá texto a continuación.

Entonces el programa se llama Belarc Advisor - Auditoría gratuita de PC personal

El proceso de instalación es normal.
Lo primero, coincidimos con el mensaje informativo de que también tienen versión para Android

Entonces aceptamos el acuerdo de licencia.


A continuación, haga clic en el botón Instalar (el programa no pregunta dónde instalar) y acepte analizar el sistema para buscar claves:


Estamos esperando la finalización.


Y finalmente se abrirá una ventana (este tipo de informe) con diversa información (sistema operativo, todos los componentes, usuarios, redes, etc.). Aquí buscamos el elemento Licencias de software en la parte inferior y vemos todo lo que encontró el programa:

No tengo mucho, porque... Utilizo principalmente soluciones gratuitas, pero el significado es claro.

Por lo tanto, con este programa puede encontrar claves de licencia no solo para Sistema operativo y programas, así como conocer estadísticas detalladas sobre su computadora (hasta las últimas unidades flash conectadas). Por eso, creo que este programa te será útil y vale la pena conocerlo.




Arriba