Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo descifrar (crackear) un dongle

Cómo descifrar (crackear) un dongle

Los dongles de hardware, comúnmente conocidos como "dongles", se pueden dividir aproximadamente en tres métodos para descifrar dongles, uno es mediante la clonación o copia de hardware, el otro es mediante la depuración, seguimiento y descifrado mediante herramientas de depuración como SoftICE, y el otro es mediante Intercepción de escritura El programa modifica la comunicación entre el software y el dongle.

La clonación y duplicación de hardware se dirige principalmente a los dongles de chips nacionales. Debido a que las empresas de dongles nacionales generalmente no tienen la capacidad de fabricación de chips de cifrado centrales, algunas utilizan chips comunes en el mercado y los crackers analizan los circuitos del chip. contenido escrito en el chip, puede copiar o clonar instantáneamente un dongle idéntico. Sin embargo, los dongles extranjeros no pueden utilizar este método. El hardware de los dongles extranjeros utiliza chips de seguridad de desarrollo propio, que suelen ser difíciles de copiar, y ahora los dongles nacionales también utilizan chips de tarjetas inteligentes importados, por lo que este tipo de clonación de hardware Los métodos de descifrado son cada vez menos. menos útil.

Para la depuración y el craqueo, a medida que la complejidad del software es cada vez mayor, el código generado por el compilador también aumenta y la complejidad de rastrear el craqueo modal mediante el desmontaje y otros métodos es cada vez mayor. y cuanto mayor es el valor, mayor es el costo del craqueo. Pocas personas están dispuestas a gastar mucha energía para realizar un craqueo tan complejo, a menos que el software descifrado tenga un valor muy alto.

En la actualidad, el descifrado y craqueo de dongles se centra principalmente en interceptar la comunicación entre la aplicación y la biblioteca dinámica cifrada. Este método es económico, fácil de implementar y tiene un buen efecto de descifrado en dongles con microcontroladores y otros chips como núcleo.

Dado que la interfaz de programación de aplicaciones (API) del dongle es básicamente pública, es fácil descargar la API de la interfaz de programación del dongle, el manual del usuario y otros materiales relacionados de Internet para conocer los últimos avances en la tecnología del dongle.

Por ejemplo, para un dongle muy famoso de un conocido proveedor de dongles en Estados Unidos, toda su información de programación se puede obtener de Internet. Después de analizar esta información, sabemos que el dongle (dongle. ) tiene 64 unidades de almacenamiento, 56 de las cuales están disponibles para el usuario. Cada una de estas unidades se puede utilizar como uno de tres tipos: algoritmos, valores de datos y contadores.

Los valores de datos son más fáciles de entender. Son datos almacenados por el usuario en la unidad de lectura y escritura, al igual que los datos en el disco duro. datos en la unidad de almacenamiento, o use La función de escritura guarda su propia información en la unidad de almacenamiento.

Un contador es una unidad en la que los desarrolladores de software utilizan una función de decremento para disminuir su valor en uno. Cuando un contador está asociado con un algoritmo activo, un valor de contador de cero apaga el algoritmo (lo desactiva).

La unidad del algoritmo es difícil de entender. Un algoritmo es una técnica a la que puede acceder mediante la función query(queryData), donde queryData es el valor de la consulta. La función anterior tiene un valor de retorno. El programa cifrado conoce un conjunto de pares de consulta/retorno. Usos de la función anterior Para comprobar la existencia y autenticidad del perro. Para las unidades designadas como algoritmos, no puede leerlas ni modificarlas en el software, incluso si es un usuario legítimo. Hasta donde yo sé, además de aumentar la complejidad del programa, esta tecnología se utiliza principalmente para combatir el cracking mediante tecnología de emulador.

Todas las llamadas a funciones API de este dongle tienen un valor de retorno y un valor de retorno de 0 indica éxito.

Por lo tanto, la idea detrás del crack es utilizar nuestras propias herramientas (como VB, VC, etc.) para reescribir y construir un archivo de biblioteca de enlace dinámico DLL que sea el mismo que la API del dongle, que también incluye lectura, escritura, etc. Todas las funciones incluidas en la API utilizan los mismos parámetros y valores de retorno que las funciones originales, y el valor de retorno de todas las funciones es 0. Luego procese las funciones de Consulta y Lectura y devuelva los valores requeridos por el software de la aplicación.

Después de escribir correctamente el nuevo archivo DLL, reemplace directamente el archivo DLL original y luego ejecute el software de la aplicación. La operación del software para acceder al dongle será interceptada y el programa de interceptación siempre devolverá los datos correctos. al software, realizando así el funcionamiento simulado del dongle.

Las anteriores son algunas ideas comunes para descifrar perros de software (candados de llave). Para este método de descifrado, los desarrolladores de software todavía tienen algunas contramedidas correspondientes. La próxima vez lo discutiré en "Consejos de programación de perros de software" de este artículo. explica cómo los desarrolladores de software pueden escribir código seguro y confiable que haga que métodos de piratería similares sean ineficaces.