2012-03-11 23 views

Respuesta

4

No hay una manera fácil de eliminarlo sin romper el formato de archivo.

Pero ehm, encontrado this.

+0

Puedo romper el formato de archivo, pero necesito saber cómo hacerlo sin interrumpir el exe. – user1232138

+1

Si rompe el formato de archivo, entonces ya no es realmente un archivo PE. Puede proporcionar un talón personalizado. –

7

La eliminación de Dos Stub no tiene nada que ver con el encabezado Dos. Sí, es posible eliminar el Dos Stub (ya que no se usa más). Incluso puede reducir el tamaño del encabezado Dos a su mínimo (MZ + saltar al encabezado PE). Pero no puedes eliminar completamente el encabezado Dos. De lo contrario, el cargador de Windows rechazará iniciar su imagen si faltan MZ y el salto al encabezado PE.

+0

Puede recuperar el tamaño real del Trozo de DOS de cualquier imagen ejecutable, usando PeStudio (http://www.winitor.com) – mox

+0

. ¡Quien rechazó mi respuesta, sea justo y comente el voto a la baja! Gracias. – mox

13

El archivo PE debe comenzar con un IMAGE_DOS_HEADER seguido en algún momento por una estructura IMAGE_NT_HEADERS que define los campos PE modernos.

El IMAGE_DOS_HEADER tiene dos campos obligatorios - e_magic debe sostener la IMAGE_DOS_SIGNATURE valor (que se parece a 'MZ' en ASCII) y e_lfanew debe ser el desplazamiento desde el principio del archivo hasta el inicio de los IMAGE_NT_HEADERS.

Aparte de estos dos campos, el resto de IMAGE_DOS_HEADER es opcional para Windows después de Windows de 16 bits y puede ser cero, y el código auxiliar de DOS es opcional y se puede omitir.

El archivo PE conformant mínimo comienza con una IMAGE_DOS_HEADER donde e_magic se establece en IMAGE_DOS_SIGNATURE y e_lfanew se establece en sizeof (IMAGE_DOS_HEADER), seguida inmediatamente por la IMAGE_NT_HEADERS.

0

No puede reducir el tamaño del encabezado Dos a su "mínimo". Lamentablemente, el campo de longitud es el último campo en IMAGE_DOS_HEADER. Por lo tanto, tiene un tamaño fijo de 64 bytes.

Cuestiones relacionadas