Más bien, que citan definiciones de los términos que me gustaría dar a mi punto de vista personal de lo que son estas cosas.
La ingeniería inversa es el proceso de tomar una salida y averiguar cuál fue la entrada. También significa rastrear los pasos que una parte de la información tomó desde que se ingresó hasta que se envía. Piense en esto como descubrir que las cosas funcionan sin tener la fuente, sino un nivel de abstracción justo por encima de la máquina. Cuando se trata de software, la ingeniería inversa tiende a ser el proceso de depuración del código de ejecución de una aplicación en ensamblaje mientras se ejecuta. Verlo ejecutarse, siguiendo el proceso que lleva, le permite rastrear los pasos y volver a ensamblarlos en algo significativo que pueda usar usted mismo.
La explotación binaria es el proceso de abusar de fallas sutiles (o quizás no tan sutiles) en el software para hacer que una aplicación realice funciones para las que no estaba diseñada. Si bien no es imposible explotar fallas en binarios sin hacer ingeniería inversa, diría que casi todos los ejercicios de explotación binarios comienzan con ingeniería inversa para entender cómo funciona la aplicación y ayudar a identificar las fallas.