There are three main objectives of attacks on software: they either try to
sabotage the software by causing it to fail or otherwise become unavailable, to
subvert the software by changing how it operates (by modifying it or by executing
malicious logic embedded in it), or to learn more about the software’s operation