Al realizar el desarrollo de exploits, el proceso siempre se basa en la dirección de memoria de la máquina de la víctima.
Como desarrollador de exploits, deberá configurar un entorno de máquinas atacantes / víctimas y probarlo. Las principales pistas para el desarrollador de exploits en su viaje hacia la obtención de una shell desde la aplicación vulnerable son la dirección de memoria (DLL y ubicaciones de búfer principalmente) que obtiene al adjuntar la aplicación a un depurador (generalmente señalado por los registros de CPU como EIP, ESP, etc).
Esto es bueno si el objetivo final es hacer un código de prueba de concepto para demostrar que esta aplicación es vulnerable. Sin embargo, hasta donde sé, esas direcciones no son permanentes y pueden cambiar de una máquina a otra. Si está realizando una prueba de penetración de caja negra para una empresa, no podrá adjuntar un depurador a su aplicación para obtener las direcciones correctas a las que saltar. Y lo mismo se aplica a las vulnerabilidades públicas de exploit-db porque la mayoría de las vulnerabilidades allí necesitan algunas correcciones con respecto a las direcciones y compensaciones.
Entonces, mi pregunta es: ¿cómo se beneficia un probador de penetración al escribir tales exploits (o descargar uno de exploit-db) como un probador de penetración no como un desarrollador de exploits?