Testing Cryptographic Algorithms for Weaknesses: Test the level of data security provided by a given cryptographic algorithm by analyzing it for weaknesses.
Testing DRM or License Protection (anti-reversing): Protect software and media digital-rights through application and testing of anti-reversing techniques.
Auditing the Security of Program Binaries: Audit a program for security vulnerabilities without access to the source code by scanning instruction sequences for potential exploits.
Figure 3.1. Security related software reverse engineering scenarios.