¿Dónde se puede encontrar una especificación para las estructuras de datos que representan una DLL en la memoria?

StackOverflow https://stackoverflow.com/questions/381487

  •  23-08-2019
  •  | 
  •  

Pregunta

En concreto me gustaría saber cuál es la estructura de datos para la sección de las importaciones (idata) se parece.

¿Fue útil?

Solución

El formato de archivo DLL es la misma que la de los archivos EXE, el PE formato (portable ejecutable). Puede obtener una copia de la especificación de Microsoft. También puede intentar Wotsit para obtener información general de formato de archivo.

Windows proporciona la href="http://msdn.microsoft.com/en-us/library/ms680181.aspx" rel="nofollow noreferrer"> ImageHlp API para trabajar con archivos ejecutables. La función LoadImage parece un buen lugar para comenzar.

También debe echar un vistazo a el capítulo "portátil de formato de archivo ejecutable" de indocumentado Windows NT . Parece describir cómo utilizar ImageHlp para llegar a diferentes partes de un sistema binario. Creo que la parte que está más interesado es en la cuarta página, que describe la parte IMAGE_DIRECTORY_ENTRY_IMPORT del archivo PE.

Otros consejos

Parece que estaba equivocado - la estructura del archivo PE parece ser idéntica en la memoria

.

Uno puede utilizar las estructuras definidas en winnt.h para interpretar la memoria.

Al mirar estas estructuras, hay que recordar que las compensaciones (o 'RVA de [1]) son Little Endian . Probablemente no habría sido tan confusa si acaba de señalar un programa en la memoria correspondiente en lugar de utilizar un depurador.

[1] En hablan Microsoft.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top