Cos'è il reverse engineering?
¿Qué es ingeniería inversa?
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.
La ingeniería inversa es una disciplina de la ciberseguridad que se basa en reconstruir y hacer comprensible para el investigador “sistemas” de bajo nivel. Se puede aplicar ingeniería inversa a distintos contextos, aunque los principales son: aplicaciones y comunicaciones.
El objetivo de la ingeniería inversa a nivel de aplicaciones es obtener y comprender el código fuente de la misma. Se puede aplicar ingeniería inversa de muy bajo nivel, por ejemplo, para obtener el código fuente de aplicaciones compiladas (como ocurre con los binarios escritos en C). También se puede aplicar la ingeniería inversa a más alto nivel con aplicaciones basadas en lenguajes interpretados (como java) pero que han sido ofuscadas de alguna forma (como suele ocurrir con las aplicaciones Android).
El objetivo de la ingeniería inversa a nivel de comunicaciones es la reconstrucción de un protocolo de comunicaciones desde cero para entender su funcionamiento y, en el mejor de los casos, poder interactuar con el dispositivo a través de él. Es un proceso bastante complejo y suele requerir del uso de SDR.