1. Introduction
Nowadays, protecting the assets embedded in the software is one of the most challenging tasks in our technology-centric world. Examples of software assets are cryptographic keys that, if extracted, may be used to gain illegitimate access to services, impersonate users, emulate the application and abuse of its algorithms and protocols (that may contain intellectual properties).