donde do malloc() y free() almacenan las direcciones asignadas y sus tamaños (Linux GCC)? He leído que algunas implementaciones las guardan en algún lugar antes de la memoria real asignada, pero no pude confirmar eso en mis pruebas.Dónde hacer malloc()/free() Almacenar tamaños y direcciones asignados?
El fondo, tal vez alguien tiene otro consejo para esto: Estoy experimentando un poco con el análisis de la memoria de montón de un proceso para determinar el valor actual de una cadena en el otro proceso. Acceder a la memoria del montón de proceso y pasear por ella no es un problema. Sin embargo, como el valor de la cadena cambia y el proceso asigna una nueva parte de la memoria cada vez, la dirección de la cadena cambia. Como la cadena tiene un formato fijo, es fácil de encontrar, pero después de algunos cambios, las versiones anteriores de la cadena todavía están en la memoria del montón (probablemente liberadas, pero aún no reutilizadas/sobrescritas) y por lo tanto no puedo decir qué cadena es la actual.
Por lo tanto, para encontrar el actual, quiero verificar si todavía se utiliza una cadena que encuentro en la memoria al comparar su dirección con las direcciones malloc/free know.
ciao, Elmar
Además de mi respuesta a continuación, esto podría ayudar un poco http://www.linuxforums.org/forum/linux-programming-scripting/52375-reading-memory-other-processes.html –
Es posible que también desee excavar alrededor en la porción de mapeo de memoria del kernel/glibc –