Constellation Knowledge Network - Una lista completa de nombres - El tutorial anti-craqueo de Easy Language dice que usar una ventana personalizada para un cuadro de información significa crear una nueva ventana usted mismo. ¿Cómo logra una nueva ventana el efecto de espera del programa o del sistema?

El tutorial anti-craqueo de Easy Language dice que usar una ventana personalizada para un cuadro de información significa crear una nueva ventana usted mismo. ¿Cómo logra una nueva ventana el efecto de espera del programa o del sistema?

4. Verificación aleatoria

La verificación aleatoria es muy importante. Por ejemplo, una de tus verificaciones siempre existe, por lo que es fácil para los traidores rastrear puntos de interrupción subterráneos. Por lo tanto, además de una verificación normal cuando se inicia el software, lo mejor es verificar aleatoriamente en otros casos, con una probabilidad de 1 entre 30 o 1 entre 50. De esta forma, el traidor seguirá intentando en lugares donde su software Se ha verificado, por lo que el tiempo de craqueo será considerable.

Teorema de cifrado 14: Una verificación aleatoria suficiente es suficiente para matar al cracker.

La verificación aleatoria implica introducir aleatoriamente diferentes subrutinas de verificación.

O el número aleatorio máximo es mayor y solo hay una probabilidad de verificación del 30/30.

O coloque algunos cuadros de imagen en la ventana con el mismo color que la imagen base, para que el traidor no pueda hacer clic aquí, pero el usuario activará la verificación si hace clic en él.

Asumimos que todo el software se puede descifrar, incluido Yi Language. Si su velocidad de descifrado no puede seguir el ritmo con el que se lanza el nuevo software, siempre estará agotado de descifrar la última versión. En otras palabras, se necesita más tiempo para descifrar que para escribir un software. Es mejor escribir el software directamente.

Una de las tareas del anti-cracking es agotar al traidor o desperdiciar su vida.

También se puede utilizar el siguiente método: después de leer el código de registro, la clave pública y el archivo de registro a verificar, puede definir una matriz 10000 y almacenar el mismo contenido para una verificación posterior, lo que desperdiciará algo de memoria. a lo sumo. Durante la verificación, uno de ellos se utiliza aleatoriamente para la verificación. Porque el traidor no sabe qué matriz usas para comparar y es aleatorio. El valor de cada verificación es diferente. Sería extraño no hacer que el traidor vomitara sangre.

Encabezado del bucle de conteo (10000, recuento)

Array [count] = "123456 " 'Copia 10,000 códigos de registro públicos o claves públicas, no importa si el cracker lo sabe .

Fin del período de conteo

Matriz [tome un número aleatorio (1, 10000)]

No verifique el código de registro inmediatamente, 10000 copias, solo Necesito encontrarlo casualmente en el futuro. Una copia, el cracker no sabe qué copia está usando. Al mismo tiempo, puede compilarla con anticipación y usar constantemente algunas llamadas falsas para leer la matriz del código de registro para interferir con la. galleta. Este método tiene poco impacto en el rendimiento del programa y sólo desperdicia un poco de memoria. Debido a que Debug tiene restricciones en los puntos de ruptura de la memoria, en este caso, si quiere romper el punto de ruptura, la persona que esté agotada será quien lo rompa.

5. Verificación de diferentes permisos

Es muy necesario realizar una verificación al inicio para que el traidor sepa que ha sido verificado y le permita relajar su vigilancia, y esta verificación. Es sólo una parte de la verificación. No está completamente verificado.

También hay sugerencias de que no debe verificar la información de registro después de leerla al inicio. No está seguro de dónde verificarla. Personalmente, creo que esto hará que los crackers estén más atentos y creo que el autor del software tiene mucha experiencia. Paralizar al enemigo también es importante.

Por ejemplo, basta con pasar una verificación al inicio, fortalecer el nivel de verificación en un nivel y luego verificar en otros lugares.

El siguiente código es para confirmar un nivel.

Ciclo de conteo inicial(al valor(validación 1),)

Registrado = 1

Cola del ciclo de conteo()

… …

Revalidar el nivel en otra subrutina de disparo:

Contar encabezado de bucle (registrado)

Contar encabezado de bucle (al valor ( validación 2),)

Registrado = 2

Salir del bucle ()

Cola del ciclo de conteo ()

Salir del loop()

Cola del ciclo de conteo()

En otras subrutinas de activación, revalidar en este nivel:

Encabezado del bucle de conteo (registrado)

Contar encabezado de bucle (al valor (verificación 3),)

Registrado=3

Salir del bucle ()

Cola del ciclo de conteo()

Saltar del bucle()

Cola del ciclo de conteo()

A veces el nivel se puede reducir, pero por supuesto no importa cómo se reduce. Verificación de nivel directo:

6. Engañar el código de verificación de palabras de filtro de GHOFFICE

Ya he explicado el principio del comando de flor. Ponga artificialmente algún código de palabra de filtro de GHOFFICE en el programa. engañar al traidor. Esta también es una buena idea. Los códigos de palabras filtrantes de GHOFFICE son algunos códigos de verificación falsos, que son básicamente texto sin formato. Hay cientos de códigos de este tipo, suficientes para agotar a un traidor.

De hecho, hay una forma de lidiar con esos expertos que "explotan según el comando de salto", que es suficiente para darles dolor de cabeza, es decir, obviamente no agregas oraciones relacionadas con juzgar. si es genuino en el programa, ni les da ninguna pista para no dejar que sigan los rastros, sino que saltan a otra rama aparentemente razonable después de juzgar que es pirateada, y esa rama es similar al código de rama genuina, pero se ha modificado ligeramente en la fórmula de cálculo u otro algoritmo. Esto hará que el resultado del cálculo sea incorrecto. De esta manera, no pueden decir cuál es correcto y cuál incorrecto a nivel de código de máquina.

Incluso si creen que el crack tiene éxito, cuando realmente lo ejecutan, los resultados están llenos de errores y no les interesa. ¡Jaja, cuenta las pérdidas! ! !

Teorema de cifrado 15: Aunque agregar una gran cantidad de códigos de filtro GHOFFICE es inútil, es muy útil.

Tarea 1: Hacer una constante * * * *

Requisito: Hacer un generador automático de código constante. Se pueden generar aleatoriamente cientos de formularios de código fuente de Yi Language y copiarlos directamente en Yi Language para convertirlos en constantes. Las variables también se pueden hacer así.

Después de escribir un programa de este tipo, puede generar automáticamente el código de palabra del filtro GHOFFICE y luego copiarlo y pegarlo en la tabla constante de Yi Language. Como se muestra en la siguiente figura:

Las variables también se pueden generar de esta manera, pero las variables generadas se pueden copiar como variables globales, variables de ensamblaje o variables locales a voluntad. El nombre durante la producción puede ser un nombre chino. Después de la compilación directa, el nombre chino con el mismo nombre no se encontrará en el archivo EXE. Por lo tanto, puede definir con seguridad estos nombres como "constante 1 de gofficefilterword" y "variable 1 de gofficefilterword" para mostrar la diferencia con el código normal.

Tarea 2: Crear un ofuscador de código

La naturaleza de esta tarea es la misma que la anterior. También utiliza el lenguaje Yi para generar automáticamente algunas palabras filtrantes de GHOFFICE inútiles para confundir el craqueo del traidor. Permítale encontrar todas las palabras filtrantes de GHOFFICE, extendiendo así en gran medida el tiempo de descifrado.

Esta tarea se puede completar automáticamente copiando directamente el contenido del cuadro de edición y pegándolo en su código, como se muestra en la siguiente figura:

La figura anterior genera algo de cifrado de texto sin formato. métodos g officefilterword código. Dejemos que los traidores estudien estas palabras filtrantes de GHOFFICE.

A veces es mejor llamar al nombre de subrutina anterior, porque de todos modos no funcionará. Es mejor usar llamadas multiproceso.

O si normalmente recopilas más subrutinas que otros usan para el cifrado, cópialas en un programa útil y guárdalas. Este tipo de código se coloca en su programa útil como código de palabra de filtro de GHOFFICE, lo que aumenta el tamaño de algunos programas, pero la seguridad mejora considerablemente. Y básicamente no sacrifica el rendimiento y la estabilidad del software.

7. Tecnología de pseudoverificación

Primero dé un ejemplo. Antes de la versión 10.0 del reloj electrónico, se descubrió una gran cantidad de máquinas de registro, por lo que el autor del reloj electrónico luego cambió el método de cifrado. Después del lanzamiento de E-Watch 10.0, todavía apareció una máquina de registro y puede usar esta máquina de registro para registrar el software. Entonces algunos usuarios utilizaron el código de registro obtenido por la máquina de registro. Después de un tiempo, cuando los usuarios pirateados almacenaban datos importantes en YiBiao, un día la base de datos se bloqueó repentinamente y tuvieron que registrar YiBiao y dejar que el autor de YiBiao desbloqueara la base de datos.

A partir de esto, básicamente podemos juzgar que la nueva versión de E-Watch utiliza tecnología de pseudoverificación, que proporciona verificación de primer nivel en lugares más obvios. Este método de verificación no pasa por demasiado cifrado, pero la verificación de segundo nivel se activa bajo ciertas condiciones, y esta condición es para verificar si el usuario ha ingresado datos importantes, o una gran cantidad de datos, o si se ha utilizado una lote. .

El principio básico es que el fichero de registro consta de dos códigos de registro. En circunstancias normales, solo se verifica el primer código de registro y el segundo código de registro se verifica cuando las condiciones están maduras.

Esta es una estrategia en la que todos ganan. El autor del formulario de cambio recibirá una tarifa de registro y el pagador se disculpará y agradecerá al autor del formulario de cambio. Jaja, todos deben aprender este truco.

Sin embargo, este método es más adecuado para aplicaciones de bases de datos y cuando la cantidad de datos es grande, pero resulta ineficaz para algunos usuarios que no han generado datos.

Al lanzar software, si publica su propia máquina registrada y obtiene una versión falsa crackeada, es posible que las personas que quieran crackearla no vengan. Incluso si realmente existiera un crack, ¿quién escribiría un crack falso para sí mismo? Quizás la versión falsa crackeada esté sólo medio crackeada. Cuando los usuarios lo utilicen, los datos se bloquearán, permitiéndoles registrarse para desbloquearlos. Gracias por pagar. Jaja, este truco no es bueno, ¡pero funciona!

Teorema de criptografía 16: La verificación falsa puede confundir a los crackers comunes e incluso liberar una máquina de registro falsa.

8. Verificación de tiempo, verificación de retraso y verificación de acumulación de conjuntos de datos del cliente.

Verificar después de un tiempo. Si lanza un software en junio 5438 + octubre de 2005, la oportunidad de verificación se activará después de junio de 2005.

O si su software es un producto de base de datos, puede configurarlo en el programa para verificar si la base de datos tiene más de 5 MB, y será mejor que se asegure de que los datos no se hayan duplicado o intencionalmente. agregado.

Por ejemplo, configurar una pseudoautenticación en un reloj electrónico y luego aparece en el mercado una nueva máquina de registro. Cuando el usuario utiliza esta máquina de registro, el mensaje es que el registro se realizó correctamente. Pero un día después de que el usuario ingresó datos importantes, la base de datos de repente no se pudo abrir y el usuario estaba muy ansioso. Como pensó que el crack había sido exitoso, ingresó información importante y solo pudo recibir dinero para registrarse con el autor de E-Watch. Estoy agradecido y lamento no haberlo descifrado. Jaja, mata dos pájaros de un tiro.

Este método es un buen método para el software de aplicación de bases de datos.

Tarea: crear un programa de algoritmo y colocarlo en su software de base de datos.

Esta subrutina puede contar si el usuario ingresa cosas copiadas o datos normales cuando se utiliza su software de base de datos. La verificación se activa cuando la estadística llega a 1000. La idea del método es: puede verificar si el usuario ha utilizado la tecla de acceso directo copiar y pegar u ordenar los datos. Si hay muchos duplicados, significa que el traidor está copiando los datos y descifrándolos. Por lo demás, las instrucciones son datos importantes para un uso normal, basta compararlas.

Este método tiene excelentes efectos de control sobre los usuarios que tienen información que descifrar. Al combinar la tecnología de pseudoverificación del Artículo 6 con esta tecnología, puede saber si es un usuario genuino, bloquear la base de datos y luego desbloquearla después de que se registre.

Teorema de cifrado 17: El resultado del cifrado debería ser una situación beneficiosa para todos, y la pseudoverificación es la mejor estrategia.

9. Tecnología que combina la verificación con el conocimiento profesional

Combinar la verificación con el conocimiento profesional significa que los rebeldes necesitan aprender conocimientos profesionales para realmente descifrar, lo cual es mejor que escribir un software por sí mismos. El costo es aún mayor y los expertos desconocen algunos conocimientos profesionales, por lo que es un mejor método de cifrado.

En el código anterior, "to value(validate1())" devuelve un número entre 0 y 1, que se puede mezclar mediante multiplicación, por ejemplo:

Volumen =Posición de reproducción

Dicho código se puede combinar con su experiencia. Por ejemplo, el software de adivinación puede realizar dichos cálculos sobre las ramas celestes, las fechas de nacimiento, etc. El software de cálculo puede combinar algunos procesos de cálculo especiales. El software de dibujo puede agregar la parte del algoritmo del dibujo a dichos cálculos, como el software de diseño de sonido. máquinas herramienta, software de diseño, etc.

Teorema de cifrado 18: Usted conoce el conocimiento profesional, pero el cracker puede que no. Combinemos experiencia y validación.

10. Diseñe y escriba su propia biblioteca de soporte en un lenguaje sencillo.

Puede cambiar la extensión del archivo DLL a la extensión del archivo FNE, que es el archivo de biblioteca de soporte del idioma Yi, de modo que la dependencia se pueda mezclar con otros archivos FNE después de la compilación, y pueda Incluso escriba una biblioteca de soporte de idioma Yi y participe como parte de verificación.

El archivo FNE de Easy Language Support Library es en realidad un archivo DLL, pero se ha cambiado la extensión. El método para escribir bibliotecas de soporte en idioma Yi ya se explicó en una publicación. Busque la publicación GoldenEye en el Easy Language Forum para encontrarla.

Tarea: busque la publicación de GoldenEye sobre cómo escribir bibliotecas de soporte en Easy Language y escriba una biblioteca de soporte usted mismo.

11. El maravilloso escenario de los montones escondidos.

Hay muchos resguardos ocultos en el código que deberían tenerse en cuenta. A continuación se muestran algunos montones particularmente ocultos para que los traidores los prueben.

Puede colocar algunos trozos ocultos en algunos lugares poco visibles, como la verificación aleatoria cuando la ventana está minimizada, como la verificación cuando el mouse mueve el componente.

A veces, la verificación de la integridad de los datos debe ubicarse en una verificación de nivel superior, en lugar de verificar si el archivo se ha modificado tan pronto como aparece.

La misma verificación se puede utilizar varias veces, haciendo que el traidor piense que ya la has verificado y no es necesario volver a verificarla. Por el contrario, la verificación se produce en este momento, lo que hace que sea muy difícil detectar al traidor. Por ejemplo, la integridad se verifica inmediatamente cuando se inicia el programa. Si se encuentra algún cambio, el programa se sale inmediatamente. Dicha verificación también se realiza aleatoriamente en algunas subrutinas.

Lo mejor es diseñar tú mismo más pilas ocultas.

Teorema de cifrado 19: el cifrado es muy importante para configurar pilas ocultas, y el craqueo incompleto es un craqueo no válido.

12. Lanzar versiones incompletas

Algunos autores de software lanzan * * * software exclusivo con versiones incompletas y proporcionan más datos después del registro. Es posible hacer esto, pero es un poco problemático. Si hay un software de producción de gráficos, los recursos de imágenes se empaquetarán por separado y se proporcionará la versión completa de la imagen después de que el usuario se registre.

Algunos también borran la parte de verificación del archivo DLL y proporcionan el archivo DLL registrado real y el código de registro después del registro. Otros colocan el archivo clave directamente en el archivo DLL y lo proporcionan por separado.

La vigésima ley del cifrado: no publique la versión completa para frenado estático.

13. Tecnología de cifrado que combina programa y datos

Coloque los recursos necesarios para ejecutar el programa en el archivo de la base de datos y establezca una contraseña para la base de datos. La contraseña es el resultado de la transformación del resumen de datos del programa principal. Cuando el programa se está ejecutando, es necesario verificar si está registrado. Si está registrado, tomará el resumen de datos del programa en ejecución (tome el nombre del archivo de ejecución ()), usará su propio algoritmo para formar una cadena después de múltiples transformaciones y usará esta cadena como contraseña de la base de datos para abrir el archivo de la base de datos. Si falla la apertura de la base de datos, significa que el programa principal ha sido modificado y el programa puede finalizarse. Es imposible detenerlo y el programa no puede encontrar los recursos que necesita para ejecutarse. )

Además, diseñe un programa que utilice el mismo algoritmo para calcular la contraseña de la base de datos y luego cifre la base de datos.

Se recomienda utilizar una gran cantidad de bibliotecas de soporte para algoritmos criptográficos. Pero si el ensamblador escribe el keygen en ensamblador, copiará directamente todo el código de desensamblado de la biblioteca de soporte. La pregunta es si tendrán tiempo para hacerlo.

14. Algoritmo personalizado

Como se mencionó anteriormente, el método de cálculo cruzado entre RSA y la biblioteca de soporte de cálculo numérico es su propio algoritmo. Si puede usar la matriz en el soporte de cálculo numérico. biblioteca, las funciones avanzadas como las transformadas de Fourier son aún mejores.

Codificación cruzada RSA múltiple: también puedes usar más claves RSA, como cinco, 10, no importa. Lo importante es alterar todos estos códigos de registro y hacer llorar a muerte a los traidores. La forma de alterar es tu propio método original.

Depende de todos investigar más algoritmos propietarios. Buena suerte a todos.

Teorema de cifrado nº 21: El cifrado no se opone a métodos sesgados o anormales, se recomienda.

15. Diagrama de bloques de cifrado

Este es un diagrama de bloques de diseño de cifrado. Puede cambiar la estrategia de cifrado según su situación real:

En la figura, la periferia del programa principal ha sido compilada y protegida agregando un shell público. No importa si te bombardean, porque hay riesgos ocultos e inspecciones aleatorias.

La imagen muestra que después de ejecutar el programa principal, el código de registro normal se verifica por primera vez para ver si hay un archivo de registro. Si se descifra, el código de registro debe ser un RSA corto y el código de registro real es la superposición de tres RSA. No importa si se genera un registrador falso.

En el programa principal, el título de la ventana y la información de derechos de autor se verifican en forma de un montón oculto, considerando que si la verificación se realiza tan pronto como se inicia, es fácil que los traidores lo vean. y salta sobre él. Por lo tanto, utilice algunos métodos aleatorios, jerárquicos o condicionales para obtener una validación no fija.

En el programa principal, verifique la integridad del programa principal ocultando el código auxiliar. No pongas esto en verificación regular, de lo contrario se omitirá fácilmente. Puede verificar la longitud del archivo, ya sea MD5 o CRC32 o superior.

Se agregó un módulo anti-depuración en el programa principal para ocultar el montón.

El programa principal está lleno de códigos de verificación de palabras filtrantes de GHOFFICE. Y el código fuente tiene comentarios, por lo que no está mal.

El programa principal realiza aleatoriamente una verificación de segundo nivel bajo ciertas condiciones y toma el segundo dato del código de registro. Si el código de registro no es lo suficientemente largo y no se puede obtener el segundo dato, significa que se utiliza una máquina de registro falsa para bloquear la base de datos del usuario y esperar a que pague para registrarse.

El programa principal reactiva la verificación bajo una condición y obtiene el tercer dato del archivo del código de registro. Si el código de registro no es lo suficientemente largo y no se puede obtener el tercer dato, significa que se utiliza una máquina de registro falsa para bloquear la base de datos del usuario y esperar a que pague para registrarse.

En programación, también prestamos atención a la codificación y al almacenamiento externo de cadenas cifradas, utilizamos los comandos de cifrado de Wu para cifrar datos importantes, agregamos algoritmos de la biblioteca de soporte de cálculo numérico, agregamos algunos métodos de penalización y agregue algunos de nuestros propios algoritmos.

Los siguientes son extractos de la experiencia de programación de algunas personas y el contenido básicamente no ha cambiado. ¡Gracias!

Apéndice 1 El cifrado ha formado criptografía.

Cito al autor de "Applied Cryptography":

Hay dos tipos de contraseñas en el mundo: una es para evitar que las jóvenes vean sus archivos; la otra es para evitar que las jóvenes vean sus archivos; los traidores vean sus archivos.

Si encerraste una carta en una caja fuerte, la escondiste en algún lugar de Nueva York... y luego te dijeron que la leyeras. Esto no es seguridad, es esconderse. Por el contrario, si guarda una carta en una caja fuerte, recibirá instrucciones sobre la caja fuerte y su diseño y muchas cajas fuertes similares, y le permitirá estudiar el dispositivo de bloqueo con los mejores expertos del mundo. Y todavía no puedes abrir la caja fuerte para leer esta carta, es segura.

Esto significa que la seguridad de un sistema criptográfico reside únicamente en la confidencialidad de la clave, no en la confidencialidad del algoritmo.

Esto también es válido para el cifrado de datos puros. Para las personas que no quieren que vea los datos (el texto sin formato de los datos), utilizando un algoritmo de cifrado confiable, mientras el cracker no conozca la contraseña de los datos cifrados, no podrá leer los datos.

Pero el cifrado de software es diferente del cifrado de datos y sólo puede "ocultarse". Independientemente de si desea que él (usuario legítimo o cracker) vea los datos (texto claro del software), el software eventualmente se ejecutará en la máquina, debe ser texto claro. Dado que las máquinas pueden "ver" estos textos sin formato, los crackers también pueden verlos mediante algunas técnicas.

Entonces, en teoría, cualquier tecnología de cifrado de software se puede descifrar. Es solo que la dificultad de descifrar es diferente. Algunos tienen que mantener ocupados a los crackers más brillantes durante meses, otros pueden romperse sin ningún esfuerzo.

Así que la tarea de la lucha contra la piratería (antipiratería técnica, no antipiratería administrativa) es aumentar la dificultad de craqueo para los crackers. El costo de descifrar el software es mayor que el beneficio que obtiene al descifrarlo. Entonces el crack de Cracker deja de tener sentido: ¿quién gastará más dinero en comprar software pirateado en lugar de software genuino?

Sin embargo, ¿qué tan fácil es "difícil de descifrar"? Sony alguna vez afirmó ser súper antipiratería (antipiratería de CD de música de audio Key 2), utilizando tecnología de punta, pero recientemente fue descifrado por un marcador y se convirtió en una broma.

Muchas tecnologías que parecen buenas pueden en realidad ser fáciles de descifrar. Al igual que la Línea Maginot, Cracker no comienza en su línea, sino que "da la vuelta". De esta manera, su tecnología antipiratería puede descifrarse en lugares que nunca había soñado.

¿A qué se debe esto? La conclusión es que debido a que el software se ejecuta en la máquina, el software y la máquina están separados, y esa es la clave. Si el software y el hardware están completamente unidos y son inseparables, se puede realizar un sistema casi irrompible como IDEA. Explicaremos esto en detalle más adelante, cuando hablemos de la tecnología de protección de software tradicional.

En cuanto a mi solución, no puedo garantizar que los expertos en craqueo puedan descifrarla en unos días. Sólo puedo decir: "En este software, hago todo lo posible para cerrar la posible brecha entre los métodos comúnmente utilizados por los crackers y "lo que quiero". Pero creo que el software antipiratería al que le he dedicado tres meses de El trabajo duro no es de ninguna manera un software antipiratería de "juguete".

Apéndice 2 "Cómo prevenir el cracking mediante métodos sencillos"

Anomalía del Ártico

En el manual de depuración podemos ver las limitaciones de las herramientas de depuración: Primero La primera limitación es que solo puede descargar puntos de interrupción en cuatro áreas de memoria, y cada punto de interrupción no puede controlar más de dos bytes, por lo que el punto de interrupción de la memoria no puede controlar un área que exceda los 16 bytes; la segunda limitación es que varios subprocesos pueden controlarlo al mismo tiempo; time Solo se puede rastrear un hilo.

Supongamos que su parte de registro tiene 300 líneas, puede dividirla en 30 llamadas a subrutinas o repetir func1(), func2()...func30(). Colóquelos aleatoriamente en varias partes del programa, nunca los junte (simplemente encuéntrelos usted mismo). No utilice llamadas comunes al sistema, como Memcpy, para copiar códigos de registro. Escribe el tuyo propio siempre que sea posible. Memcpy es fácil de escribir y su rendimiento es casi intrascendente. Después de la compilación, la función en línea se expande y la parte de registro se mezcla con otro código. Escribir una máquina de registro es como encontrar una aguja en un pajar, encontrar piezas de registro útiles entre cientos de miles o incluso millones de códigos ensambladores.

La primera limitación del uso de Debug es que los códigos de registro no se pueden colocar juntos. Suponiendo que su código de registro tiene 12 dígitos, no debe colocar el código de registro en una matriz de 12 dígitos. Se pueden definir 12 variables de caracteres globales en diferentes ubicaciones del programa, cada variable tiene un bit, de modo que el código de registro no será continuo en la memoria. Es mejor cifrarlo nuevamente (un simple carácter XOR es suficiente) y luego descifrarlo durante la verificación. No utilice memoria contigua para guardar variables utilizadas para la validación. Intente definir variables temporales para verificación en diferentes partes del programa y luego pase continuamente algunos valores a otras variables durante el proceso de verificación, lo que será más efectivo para la fuerza bruta y el cargador.

No es necesario utilizar complejos algoritmos de cifrado y es más fácil convertirse en objetivo de seguimiento. Siempre que oculte la parte de registro lo suficientemente bien y no haya lagunas, le llevará 1 día escribir el algoritmo de cifrado, y un cracker puede necesitar entre 100 y 1000 veces para descifrarlo. La mayoría de la gente se daría por vencida.

Usted arma su registro como si estuviera guardando sus tesoros en una caja fuerte moderna. Aunque es muy fuerte y difícil de descifrar, para un maestro cerrajero puede abrirse en dos minutos.

El método utilizado por los antiguos piratas era enterrar tesoros en la isla, por lo que no había un mapa del tesoro y solo había un camino para todos los maestros y subordinados. Podría llevar toda una vida cavar con una palanca. Hay tanto código en el programa que puede superar el millón de líneas después de la descompilación. Si escondes la parte registrada en el interior, es como enterrar un tesoro en una isla. Los llamados Crackme son simplemente cajas fuertes modernas con las que pueden jugar los expertos, y se puede lograr el mismo efecto con el método original.

上篇: Texto original Templo Lin Xueshan 下篇: Cuando sopla la brisa primaveral, el oro golpea a un animal por todo el suelo.
Artículos populares