en cual debería de buscar las direcciones?
Podes buscar direcciones donde quieras, siempre y cuando sean ejecutables obvio. Ya sea en lib externas (propias al programa o de sistema) o dentro de la sección .text del programa. La sección ejecutable del proceso es estatica, la direccion virtual a donde se carga esta indicada en la cabecera del exe (PE). Lo mismo sucede con las libs proprias del programa. Por lo que buscar RETs ahi es de lo mas fiable que podes encontrar. Si usas libs de sistema, las direcciones pueden variar como te decia.
Digamos que de preferencia, deberias buscar dentro de todas las secciones ejecutables que aporta el programa. Luego ver por las del sistema.
Otra pregunta...
Estoy tratando de reproducir el exploit CesarFtp 099g en un lab que me he montado, y no veo que el programa tenga algún fallo.
probandolo instalado en un win xp el programa falla pero en un windows 7 no lo hace.
tiene algo que ver aqui el so?
Ni idea, tendria que probarlo. Es probable que sea por las protecciones en 7. Hay ciertas protecciones que en XP estan desactivadas por defecto.