reverse engineering
Technical computing term for analyzing a system or software to understand its design, often to replicate or improve it.
Reverse engineering was performed to investigate vulnerabilities in this software.
Reverse engineering is often used to create compatible products.