Does anyone know of good products with comprehensive binary hardening and anti-reverse-engineering features? Or better, has anyone seen an independent review comparing products that perform these types of binary code protections? I've only found one or two that offer comprehensive solutions:
- Arxan GuardIt http://www.arxan.com/software-protection-products/index.php
- PikeWerks http://pikewerks.com
Of these even Arxan seems the most comprehensive in terms of its protection mechanisms. The types of features I'm looking for include:
- protection against reverse engineering
- protection against BORE attacks (break once run everywhere)
- protection against tampering
- protection against binary modification
To provide these features the products would implement many different techniques in the larger categories of:
- static and dynamic binary obfuscation
- virtual machines
- static and runtime encryption
- checksums and timing
- anti-debugging
- authentication
For example, to implement static binary obfuscation the product should offer many different techniques from basic constant and export renaming to path chaffing, fake code insertion, and others. For a good reference see Andrew Griffith's paper on Binary Protection Schemes at felinemenace.org.
I don't know much about PikeWerks but I like how Arxan's product sounds like it conveniently integrates into a build environment so no custom code is required. Furthermore it seems to have capabilities not only to defend but to detect and react to attacks.
* Update * I should have listed the platform requirements: Linux, x86, x64, Java, C, and C++.