Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Cómo utilizar el desensamblado para modificar software de tiempo limitado escrito en C!

¡Cómo utilizar el desensamblado para modificar software de tiempo limitado escrito en C!

¡Hay muchas soluciones! Utilice IDAPro u objdump para desmontar la semántica, como el análisis de variables globales estáticas, variables locales y variables del montón.

Las variables globales estáticas se asignan al segmento de datos cuando se carga el archivo ejecutable.

Las variables locales son referencias de memoria entre esp y ebp después de ingresar a la función, como [ebp 20] o [esp-10].

Las variables del montón son pruebas para llamadas como _malloc o _calloc o mmap o mmap2 desde glibc. Para generalizar aún más, puede haber llamadas al sistema int0x80 (linux) o int0x21 (windows) en el código fuente, y el número de llamada se coloca en eax, por lo que la función con el número correspondiente se puede obtener buscando en la tabla. Por ejemplo, int0x80(eax=3) significa lectura y eax=4 significa escritura.

Después de determinar la semántica, puede modificar el archivo ejecutable. Encuentre el valor eip de la declaración correspondiente a modificar, determine la correspondencia entre la dirección de memoria de la declaración de carga real y el desplazamiento en el archivo estático según el archivo de encabezado elf (linux) o el archivo de encabezado pe (windows), y luego directamente en él Modificar instrucciones binarias. Por ejemplo, si un ret es c3 y desea cambiarlo a pausa, puede cambiar c3 a cc, y así sucesivamente.

Si desea insertar más código en el archivo ejecutable, debe arrastrar y soltar el archivo binario. Aún no existe una buena herramienta para esto, puede crear una usted mismo. Sin embargo, debe tenerse en cuenta que todos los punteros de función, tablas de salto y datos de llamadas de función indirectas deben moverse en consecuencia. No importa si el código a insertar se coloca en la posición más alta o más baja. Tenga en cuenta que no olvide modificar la información del encabezado elf o pe; existen muchas herramientas para hacerlo.