Red de conocimiento informático - Aprendizaje de programación - PE-Armor V0.7X -> hying * ¿Cómo quitar el caparazón?

PE-Armor V0.7X -> hying * ¿Cómo quitar el caparazón?

Análisis de grietas

Primero use PEiD para verificar el caparazón, Excalibur 1.03 -> olvidó [Superposición] *

Mire el punto de entrada:

0073D09D > /E9 00000000 jmp sistema de adhesivos de cabeza grande.0073D0A2

0073D0A2 \60 pushad

0073D0A3 E8 14000000 llamada etiquetado de cabeza grande.0073D0BC

0073D0BC 58 pop eax

0073D0BD 61 popad

0073D0BE ^ E9 0E00FFFF jmp big head labeling.0072D0D1

Aquí es exactamente igual que Excalibur 1.03, y más abajo deja ver su cola:

0072D0D1 60 pushad; Este es el antiguo caparazón de hying

0072D0D2 E8 00000000 pegatina de cabeza grande.0072D0D7 Entrada típica, nuevo shell de hying. Entrada típica, disfrazada de nueva versión

0072D0D7 5D pop ebp;

0072D0D8 81ED D7000000 sub ebp, 0D7

0072D0DE 8DB5 EE000000 lea esi, [ebp+ EE]

0072D0E4 55 empujar ebp

0072D0E5 56 empujar esi

0072D0E6 81C5 FD010000 agregar ebp, 1FD

0072D0EC 55 empujar ebp

0072D0ED C3 retn

Cambie EP a 32D0D1, omita el encabezado y verifique con PEiD: hying's PE-Armor V0.7X -> hying [Overlay] *

Jaja, ¡lo tengo!

Pero después de cambiar el EP, el programa se cerrará automáticamente después de ejecutarse. Parece que tiene una función de autoverificación. Será mejor que primero salga de mi caparazón.

La primera vez que me encontré con PE-Armor de Hying, fue como tener una pesadilla. Este caparazón tiene una antifuncionalidad muy fuerte. Fue un trabajo que puso a prueba mi paciencia y fue agotador.

No entraré en detalles aquí. Los amigos que estén interesados ​​pueden consultar algunos artículos sobre aforismos.

No hay esperanzas de pelar manualmente a corto plazo, así que utilicé el romra755 de Wangyou para pelar. Sin embargo, tengo problemas para arreglar el formulario de entrada.

ImportIAT dice que el punto de entrada no es válido. Tuve que buscar manualmente los IAT uno por uno, pero afortunadamente no había muchos IAT en el programa, solo unos pocos en kernel32 y user32.

Después de arreglar el programa, mostró que el PE del programa no era válido, así que tuve que usar la función RebuildPE de LordPE.

Comprobando con PEiD: Microsoft Visual C++ 6.0 [Cobertura]

Fue un alivio ver esto en ese momento, pero resultó ser el meollo del problema.

El tiempo de ejecución dumped_.exe reparado y reconstruido tiene datos ilegales, utilice OD para seguirlo.

El código que comienza al ingresar a WinMain() es casi idéntico al de VC++ (no es de extrañar que PEiD volviera a caer en la trampa).

Después de ingresar a WinMain(), veamos qué API se llaman:

GetModuleFileNameA

CreateFileNameA

SetFilePointer

Leer archivo