We are used to understanding ingenuity as the ability to imagine or invent things by intelligently and skillfully combining the knowledge we possess and the means at our disposal. Not so well known is reverse engineering, which is the ability to apply this ingenuity to the task of systematically decomposing and understanding something that has already been built, to learn from its operation and its communications when interacting with other components.
Reverse engineering has become a valuable tool for analyzing the final security of products such as drones, IoT devices and even cars, as it allows to verify the security mechanisms implemented in the analyzed products in a practical way against attacks such as tampering or industrial espionage.