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
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++.