A computer implemented method for providing attack resistance throughout a software application, the method comprising: parsing an original version of the software application including a plurality of code portions, a plurality of data values, and one or more dependencies to generate an intermediate representation of the original version of the software application; identifying one or more assets in the original version of the software application from the intermediate representation of the original version of the software application, the assets being formed by one or more predetermined program properties; prioritizing the one or more identified assets in accordance with user-specific criteria, wherein the user specific criteria comprises at least one of performance options for the application, performance tolerances for the application, size options for the application and size tolerances for the application; correlating the one or more dependencies and the data values with the identified assets; receiving user-specific control tolerances for the software application; identifying data and code for new dependencies based on asset criticality, relationships in the original version of the software application, and performance tolerance; inserting new dependencies and new data into the intermediate representation of the original version of the software application to form an alternative intermediate representation wherein said inserting new dependencies comprises replacing original operations in the intermediate representation with equivalent dependent functions constructed with Mixed Boolean Arithmetic operations such that they perform the same function of the original operations, wherein the equivalent dependent functions are bound to pre-existing parts of the software application by including additional inputs which are part of the pre-existing parts of the software application, wherein the new dependencies are created between data and code, between data and data, or between code and code, and wherein the equivalent dependent functions include external data dependencies configured and used as part of function calculations using external data such that changes or removal of the external data causes abnormal behavior of the transformed application, and wherein the new dependencies make at least one of the plurality of code portions dependent on at least one of the one or more identified assets on which it was not previously dependent and wherein the quantity of new dependencies is based at least in part on the user-specific control tolerances and the priority of the identified assets; and generating a transformed version of the software application from the alternative intermediate representation parsing an original version of the software application including a plurality of code portions, a plurality of data values, and one or more dependencies to generate an intermediate representation of the original version of the software application; identifying one or more assets in the original version of the software application from the intermediate representation of the original version of the software application, the assets being formed by one or more predetermined program properties; prioritizing the one or more identified assets in accordance with user-specific criteria, wherein the user specific criteria comprises at least one of performance options for the application, performance tolerances for the application, size options for the application and size tolerances for the application; correlating the one or more dependencies and the data values with the identified assets; receiving user-specific control tolerances for the software application; identifying data and code for new dependencies based on asset criticality, relationships in the original version of the software application, and performance tolerance; inserting new dependencies and new data into the intermediate representation of the original version of the software application to form an alternative intermediate representation wherein said inserting new dependencies comprises replacing original operations in the intermediate representation with equivalent dependent functions constructed with Mixed Boolean Arithmetic operations such that they perform the same function of the original operations, wherein the equivalent dependent functions are bound to pre-existing parts of the software application by including additional inputs which are part of the pre-existing parts of the software application, wherein the new dependencies are created between data and code, between data and data, or between code and code, and wherein the equivalent dependent functions include external data dependencies configured and used as part of function calculations using external data such that changes or removal of the external data causes abnormal behavior of the transformed application, and wherein the new dependencies make at least one of the plurality of code portions dependent on at least one of the one or more identified assets on which it was not previously dependent and wherein the quantity of new dependencies is based at least in part on the user-specific control tolerances and the priority of the identified assets; and generating a transformed version of the software application from the alternative intermediate representation