1. A method of transforming a binary software application comprising binary application code from an original form to a secured form that is resistant to static and/or dynamic attacks attempting to tamper with, reverse engineer, or lift all or part of the application, said method comprising: A) performing a combination of a plurality of binary transmutations to said binary software application during a build time phase by making a series of changes to said binary application code to produce changed binary application code, said changes including implanting new code intertwined with said changed binary application code during build-time; and B) interlocking said transmutations by generating and placing interdependencies between the transmutations; C) during execution, applying said combination of transmutations and interlocking to both the binary application code to be protected and the implanted code; and D) producing a protected application that is semantically equivalent to the original application but which comprises said interlocked transmutations such that the binary protection is no longer separated from the protected application.