Windows 8: análisis de heap en una aplicación de 32 bits que se ejecuta a través de WOW64
windows-8 windbg (1)
¿Has probado la herramienta EGGHUNTER ? También hay una versión de prueba de Intel Parallel Studio XE 2013 que tiene muchas herramientas para trabajar. Se adjunta a su IDE VS 2010 o 2012 y luego puede probar ejecutar su aplicación. Las características generales
Intel® Parallel Studio XE incluye el software de próxima generación
herramientas de desarrollo: Compiladores Intel® C, C ++ y Fortran -
Compiladores líderes en la industria Intel® MKL e Intel® IPP - Librerías de rendimiento Intel® Threading Building Blocks e Intel® Cilk ™ Plus - Modelos de programación en paralelo Intel® Advisor XE - Asistente de subprocesamiento Intel® VTune ™ Amplifier XE - Rendimiento e hilo Profiler Intel® Inspector XE - Comprobador de memoria y subprocesos Análisis estático - Localizar defectos difíciles de encontrar
Supongo que te ayudará. Gracias.
Para empezar, esta no es una pregunta general sobre cómo hacer un análisis de heap, ya que estoy familiarizado con esto en versiones anteriores de Windows.
Sin embargo, lo que me pregunto es si alguien ha logrado realizar un análisis de heap de una aplicación de 32 bits que se ejecuta a través de la capa WOW64 en Windows 8 de 64 bits, siendo Windows 8 la palabra clave aquí.
Ejecutando Windows 7 y Herramientas de depuración para Windows Simplemente apliqué la pila de usuarios y el etiquetado de pila usando gflags, y luego usé la versión x86 de WinDbg para adjuntarme al proceso, para obtener solo el contexto de 32 bits (como normalmente no soy) interesado en la capa WOW64 en sí). La información del montón aparece perfectamente.
En Windows 8, haciendo el mismo procedimiento, agregando los gflags y comenzando mi proceso, el uso de la memoria después del inicio aumenta de 40 a 140 MB, lo que indica que se ha activado el gflags.
Sin embargo, no importa cuánto lo intente, ni WinDbg ni umdh logran obtener información de montón. Ni a la antigua usanza de la versión x86, o la forma descrita en la documentación, cuando se ejecuta a través de WOW64, ejecutando la versión x64 y cambiando .effmach al contexto de 32 bits.
Además, he intentado esto utilizando las versiones de Windows 7 y Windows 8 de Debugging Tools para Windows, por lo que las mismas herramientas que me dan buenos resultados en Windows 7 no se comportan igual en Windows 8.
Mi conjetura actual es que los cambios en la forma en que Windows 8 administra el montón (que he visto algunos artículos sobre Internet) probablemente no se han actualizado / reflejado en las herramientas de depuración para Windows por completo. Supongo (mis propios escenarios de uso solo involucran procesos de 32 bits en un contexto WOW64, así que no sé con certeza) que el análisis de montón para aplicaciones cuando no tiene la capa WOW64 intermedia funciona como se esperaba, pero que el WOW64 actualmente es el bloqueador aquí.
Estoy ansioso por saber si estoy haciendo algo mal, o si hay problemas con las herramientas actuales. En la actualidad, he vuelto a utilizar Windows 7 en una VM para hacer mi análisis de memoria.
Entonces, ¿alguien ha tenido éxito al hacer un análisis de heap de una aplicación win32 bajo WOW64 en Windows 8, y si es así, cómo?