When implementing app reverse engineering controls and code modification techniques, the following practices should be followed:
- Applications should detect and respond to rooted or jailbroken devices either by alerting the user or terminating the app
- Obfuscation of classes and methods is applied to builds for impeding on de-obfuscation via dynamic analysis
- Hardware-backed process isolation is preferred over obfuscation whenever possible
- Applications should prevent debugging and prevent debuggers from being attached
- Applications should detect the presence of reverse engineering tools and frameworks
- Applications should detect when running in an emulated environment and respond appropriately
- Production builds should strip symbols ...