Il reverse engineering è il processo di smontare qualcosa, analizzarne le caratteristiche e i componenti e rimontarlo per comprendere appieno il dispositivo. Nei computer, gli strumenti di reverse engineering possono essere utilizzati per scomporre cose come software e database, oppure possono essere utilizzati per scopi scientifici come semplificare e scomporre il genoma umano per una migliore comprensione e contributo scientifico. Sebbene gli strumenti di reverse engineering siano stati criticati per la loro legalità, esistono numerosi strumenti per analizzare e comprendere molti tipi diversi di prodotti, in particolare il software.
Alcuni software sono disponibili come strumenti di reverse engineering open source e possono essere facilmente scaricati da Internet. Un tipo di materiale open source include strumenti di reverse engineering Java, che consentono il deoffuscamento delle classi Java compilate. Accedono al codice sorgente, creando un deoffuscatore che è quasi codice. Gli strumenti di reverse engineering sono progettati per funzionare assegnando nomi casuali a classi offuscate in Java e assegneranno verbi casuali dalla lingua inglese a metodi di classe offuscati in Java. Ottenere uno strumento come questo richiede un semplice download e installazione del software su un computer.
Altri strumenti open source che possono essere facilmente scaricati e installati da Internet includono analizzatori per protocolli di rete. Questi tipi di software di ingegneria acquisiscono pacchetti di dati su una rete per essere analizzati in un secondo momento. Sono utilizzati per comprendere le operazioni dei protocolli di rete in multimedia proprietari. Il software può essere scaricato gratuitamente e viene costantemente migliorato e migliorato.
Un’altra varietà di software per il reverse engineering consente la costruzione di strumenti per l’analisi dinamica. Questi tipi di strumenti di reverse engineering vengono utilizzati nel rilevamento di bug di threading e nella gestione della memoria. Il software include molti diversi tipi di strumenti, tra cui un rilevatore di errori di memoria, un profiler di previsione per cache e rami e un generatore di grafici di chiamata, tra molti altri.
Esistono anche strumenti di reverse engineering che possono essere eseguiti su determinati sistemi operativi (OS) come debugger e disassemblatori. Questo tipo di software può essere open source o acquistato su Internet. Uno di questi strumenti viene fornito con istruzioni PDF e tutorial su come utilizzarlo con diversi sistemi operativi, consentendo all’utente di comprendere meglio la funzionalità del dispositivo e del sistema operativo. Tuttavia, è stato preso di mira con alcuni dispositivi mobili e smartphone e non è più prontamente disponibile per l’uso.