Tengo entendido que para explotar con éxito una vulnerabilidad de desbordamiento del búfer basado en la pila, primero debemos desbordar el búfer, sobrescribiendo así el puntero de retorno y obteniendo el control del EIP. Una vez que controlamos EIP, podemos utilizar una instrucción JMP ESP para saltar al principio de nuestra pila, ejecutando nuestro Shellcode (supongamos que DEP o ASLR no están en su lugar solo por simplicidad y por razones teóricas).
Ahora, para el montón, entiendo que los desbordamientos todavía están presentes. Mi pregunta es: ¿La explotación de un desbordamiento de búfer se ve diferente en el montón? Si es así, ¿cuáles son los detalles más finos?