Il reverse engineering è una disciplina della cybersecurity che si basa sulla ricostruzione e la comprensibilità ai 'sistemi' di basso livello del ricercatore. Il reverse engineering può essere applicato a diversi contesti, anche se i principali sono: applicazioni e comunicazioni.
L'obiettivo del reverse engineering a livello di applicazione è quello di ottenere e comprendere il codice sorgente di esso. Il reverse engineering di livello molto basso può essere applicato, ad esempio, per ottenere il codice sorgente delle applicazioni compilate (come nel caso dei binari scritti in C). Il reverse engineering può essere applicato anche ad un livello superiore con applicazioni basate su linguaggi interpretati (come java) ma che sono state offuscate in qualche modo (come spesso accade con le applicazioni Android).
L'obiettivo del reverse engineering a livello di comunicazione è la ricostruzione di un protocollo di comunicazione da zero per comprenderne il funzionamento e, nel migliore dei casi, per poter interagire con il dispositivo attraverso di esso. È un processo abbastanza complesso e di solito richiede l'uso di SDR.