Vai al contenuto

Reverse engineering: cos’è e come funziona

wordpress 876983 1920

Navigare al sicuro? Proteggi la tua connessione su internet con NordVPN (clicca qui)

Reverse engineering

Il reverse engineering può essere visto come una sorta di progettazione al contrario. Si parte dal prodotto finito, che può essere di qualsiasi tipo, un dispositivo meccanico, elettronico, un software, lo si studia e analizza a fondo fino ad essere in grado di crearne uno che ne replichi il funzionamento, che migliori il dispositivo di partenza, che lo adatti a contesti diversi da quello per cui era stato progettato inizialmente.


Vuoi pubblicare il tuo articolo su questo portale? Cercaci su Rankister (clicca qui) .

Viene in sostanza invertito il processo di progettazione, ottenendo informazioni sui singoli componenti per comprendere appieno il funzionamento del disposito che si sta analizzando.

Molte aziende vietano il reverse engineering dei propri prodotti dichiarandolo nei propri termini di licenza. Se prendiamo in esame un videogioco, per quanto concerne la parte puramente grafica, la legislazione è chiara e semplice da applicare, è facile intuire che replicare gli stessi ambienti, disegni, modelli 3d sia una violazione del diritto d’autore. Riguardo il codice le cose si complicano e non poco, praticando la reverse engineering si riesce a risalire a parte del sorgente e, una volta compreso il funzionamento si può creare un programma che svolga lo stesso compito allo stesso modo, ma il codice comunque diverso. La materia è complicata e controversa e non è oggetto di questa trattazione.

Un curioso esempio di reverse engineering è quanto è accaduto a Grand Theft Auto III, Vice City qualche mese fa, troverete maggiori dettagli a questo indirizzo.

Reverse engineering in campo software

Invertendo il processo di sviluppo, i programmatori “smembrano” un software estraendone il codice sorgente. Fatto ciò, il software non ha più segreti, sarà  possibile riscriverlo e ricostruire l’architettura del programma, modificarne il funzionamento e le strutture interne. Una volta compresi i processi del software, sarà  anche possibile eliminare eventuali bug presenti. In ambito software si ricorre al reverse engineering principalmente per la risoluzione di problemi e l’analisi di prodotti concorrenti.

Ti potrebbe interessare:  Come installare NGINX per WordPress

Il reverse engineering, per la ricostruzione di un software prevede il recupero del codice sorgente e la comprensione del protocollo di comunicazione

Ricostruzione del codice

Il codice soorgente di un software è scritto in uno dei tanti linguaggi di programmazione esistenti. Affinchè il codice, cosଠscritto, possa essere compreso ed eseguito dal nostro computer, viene successivamente convertito in linguaggio macchina. Se si sta facendo reverse engineering, questo processo deve essere invertito, ovvero si parte dal linguaggio macchina e bisogna tradurlo. Si effettua l’operazione inversa alla compilazione, infatti si usano degli strumenti chiamati proprio decompilatori. Non sono altro che programmi che dal binario generano un codice human readable. Non si riesce quasi mai ad ottenere l’intero codice sorgente e spesso non si riesce ad ottenerlo se non in linguaggio assembly, che è sempre human readable ma molto a basso livello e molto vivino al linguaggio macchina. Il fine del reverse engineering software non è quella di ricostruire per intero il sorgente, quindi il fatto che non lo si riesca a recuperare non è del tutto un male, poichè l’attenzione è rivolta piu che altro all’idea che c’è alla base del funzionamento di un dato programma.

Protocollo di comunicazione

Supponiamo si stia analizzando un software che mette in comunicazione vari dispositivi tra loro. In questi casi è di vitale importanza riuscire a capire come avviene lo scambio di informazioni, bisogna cioè riuscire a risalire alle regole del protocollo di comunicazione.

Per fare ciò si usano strumenti chiamati sniffer, che sono software in grado di analizzare il traffico dati in una rete.

Perchè è utilizzato il reverse engineering

In campo software il reverse engineering è utilizzato per vari motivi, il controllo e la gestione della qualità , analisi dei protocolli di comunicazione di rete, rilevamento di virus e altre minacce, portabilità  e manutenzione, ricerca bug, miglioramento della compatibilità  di un software con piattaforme e software di terze parti, e altro ancora. Inoltre viene spesso utilizzato per analiizzare prodotti concorrenti.

Ti potrebbe interessare:  8 utilizzi non convenzionali della tecnologia da conoscere

Vuoi imparare o approfondire le tematiche di sicurezza? Ecco le offerte di libri su Amazon !

Da non perdere 👇👇👇



Trovalost esiste da 4330 giorni (12 anni), e contiene ad oggi 3651 articoli (circa 2.920.800 parole in tutto) e 13 servizi online gratuiti. – Leggi un altro articolo a caso

Segui il canale Youtube @Tecnocrazia23

Tag: