En general, hay tres cosas que puedes hacer cuando buscas desbordamientos de búfer:
Revisión del código fuente
Si el código fuente está disponible, puede encontrarlo revisando el código.
Descompilar el código y revisar la fuente
Si el código fuente no está disponible, la ingeniería inversa podría ser una de las opciones. Una vez descubierto, es posible hacerlo, el código fuente puede ser revisado.
Fuzzing y depuración
Si las dos primeras opciones no son posibles debido a la ofuscación de código o cualquier otro método de protección de binarios, la eliminación de errores y la depuración son una opción.
Esto básicamente significa que al enviar un búfer grande a un campo de entrada específico y ver cómo la aplicación lo maneja.
Un buen recurso para comenzar con la aplicación de Windows de 32 bits es: resources.infosecinstitute.com/stack-based-buffer-overflow-in-win-32-platform-part-1/
Tenga en cuenta que las protecciones de memoria como DEP y ASLR podría causar problemas al explotar un programa o servicio.