Cómo descomprimir parches de juegos usando un shell
El llamado shell es un método para cambiar el código de archivos de programas ejecutables o archivos de biblioteca de enlaces dinámicos mediante una serie de operaciones matemáticas (también existen algunos programas de shell que pueden comprimir controladores cifrados) para reducir el tamaño de archivo pequeño o el código de programa cifrado.
Cuando el empaquetador se está ejecutando, primero ejecuta el programa shell, y luego el programa shell es responsable de descomprimir el programa original del usuario en la memoria. Después del empaquetado, el control se devuelve al programa real. Por eso buscamos OEP. Todo se hace automáticamente, el usuario no sabe ni necesita saber cómo funciona el programa shell. En términos generales, los resultados de ejecución de programas shell y programas shellless son los mismos. Debido a que este programa tiene muchas similitudes funcionales con shells naturales, dicho programa se denomina "shell" según las convenciones de nomenclatura.
(PD: Shell se refiere a agregar un fragmento de código a un programa para proteger el código interno de modificaciones ilegales o descompilaciones).
Teoría del Shell
Existe Hay dos métodos principales de bombardeo: bombardeo duro y bombardeo dinámico.
El primero es el descompresión difícil, que consiste en descubrir el algoritmo de descompresión del software descomprimido y escribir el algoritmo inverso, al igual que la compresión y la descompresión. Debido a que los shells actuales tienen características como cifrado, deformación y entornos virtuales, el código generado es diferente cada vez que se agrega un shell. El bombardeo duro no puede hacer nada.
El segundo es el bombardeo dinámico. El programa empaquetado debe restaurarse a su forma original cuando se ejecuta, es decir, debe descomprimirse en el encabezado del archivo del programa después de la ejecución. Entonces podemos usar OD para rastrear la causa de OEP. En este punto, podemos volcar la imagen en la memoria y reconstruir el archivo ejecutable estándar. Entonces salimos del caparazón.
(PD: ahora el shell de cifrado es un poco más complicado y hay más cosas a considerar).
La descripción anterior es una descripción simple del shell de compresión. p>
El shell ahora cambia de un shell comprimido a un shell cifrado y luego a un shell VM.