Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo descifrar el código shell

Cómo descifrar el código shell

¡El reemplazo es completamente posible! Pero estos programas generalmente están "encriptados". Este cifrado no significa que el código compilado esté encriptado (como UPX), sino que el autor original utiliza otra forma de pensar o utiliza el analizador de sintaxis del compilador al programar. "cifrado"! "El direccionamiento en un programa de este tipo es muy confuso. El mismo espacio de memoria y la misma operación tendrán diferentes métodos de direccionamiento. Por lo tanto, la dificultad de las operaciones de reemplazo como el shellcode aumentará considerablemente.

Para realizar el reemplazo, Primero, debe considerar que todos los modos de direccionamiento en el programa reemplazado son completamente correctos y que no hay modos de direccionamiento incorrectos. En segundo lugar, debe ver si el programa original tiene una operación de suma de verificación en el segmento de código shellcode original y, de ser así, ¡descifrar! ¡Finalmente, para el caso especial de reconstruir el encabezado!

En resumen, el código de shell y otras operaciones de reemplazo son complicados, y hay muchos factores a considerar.

¡Por qué es necesario LZ! para ser reemplazado ¿Qué? Dado que ya tienes el código shell, es fácil escribir un programa pequeño, entonces, ¿por qué molestarte en reemplazarlo?

Si realmente quieres reemplazarlo, tengo una buena sugerencia para ti. Cuando no tenga nada que hacer, escriba un programa EXP, establezca una variable de puntero global, asigne un valor al puntero en el programa y, si asigna una dirección al puntero, asigne un valor aleatorio y luego use el ensamblador integrado. Para escribir algunos códigos únicos (por ejemplo, Shellcode, primero agregue el código Shell al final del archivo del programa, luego desmóntelo, busque esas instrucciones de ensamblaje características (como 10 "emms" consecutivos), busque la instrucción mov anterior (correspondiente a el código fuente en la asignación del puntero) y realice la operación Cambie el número a la dirección lineal de memoria del código shell, no el siguiente código característico. ¡El reemplazo está completo! Shellcode, puedes desmontar completamente el programa EXP para analizarlo paso a paso, pero este proceso requiere que tengas un alto nivel de compilación para analizar el segmento donde se encuentra el shellcode original. ¡Otro método es cargar el programa EXP en una depuración! herramienta y luego rastrearlo. Shellcode es similar a un virus en algunos lugares y generalmente se puede rastrear. ¡Vaya al código shellcode descifrado! Debido a que el código shell original está cifrado, es muy problemático y complicado de reemplazar. método de cifrado, de lo contrario será difícil