Is reverse engineering part of cyber security?
Cos'è il reverse engineering?
Reverse engineering is a cybersecurity discipline based on reconstructing and making low-level “systems” understandable to the researcher. Reverse engineering can be applied to different contexts, but the main ones are applications and communications.
The objective of reverse engineering at the application level is to obtain and understand the source code of the application. Reverse engineering can be applied at a very low level, for example, to obtain the source code of compiled applications (as is the case with binaries written in C). Reverse engineering can also be applied at a higher level with applications that are based on interpreted languages (such as java) but have been obfuscated in some way (as is often the case with Android applications).
The goal of reverse engineering at the communications level is to rebuild a communications protocol from scratch to understand how it works and, ideally, to be able to interact with the device through it. It is a complex process and usually requires the use of SDRs.
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.