Yo mismo soy un tipo de análisis estático; Casi siempre abandoné la ingeniería inversa dinámica hace diez años. Entonces, en estos días, mi proceso generalmente es ubicar donde mi entrada ingresa al módulo que me interesa, y luego realizar un análisis estático pesado para determinar cómo mi entrada manipula el estado del programa. He encontrado algunos errores geniales como la divulgación de información de esta manera; sin embargo, sin duda soy mucho más lento que mis contrapartes que emplean mucho análisis dinámico y generación de entrada dinámica (por ejemplo, fuzzing aleatorio).
¿Qué pasos suele seguir para descubrir vulnerabilidades en programas de código cerrado?