The detailed examination of a software product or web application to detect vulnerabilities or hidden features. Reverse engineering is the process of studying a finished program using special methods. Reverse engineering covers a broad range of areas, including decompiling and disassembling of executable files and libraries, and analysis of system data.
In the field of computer security, reverse engineering is used to study malware activity and create tools to neutralize it.