10. A method for analyzing an end-user license agreement (EULA), comprising: sensing, by at least one computer processor, an installation of a software package comprising a wanted software program and an unwanted software program; intercepting, by the at least one computer processor, the EULA from the software package; detecting, by the at least one computer processor, at least one restrictive term of the EULA indicating that a first removal of the unwanted software program requires a second removal of the wanted software program; detecting, by the at least one computer processor, an end-user agreement to the EULA; monitoring, by the at least one computer processor, the installation of the software package to generate state information including information about the at least one restrictive term of the EULA, a first plurality of files installed for the unwanted software program, and a second plurality of files installed for the wanted software program; detecting, by the at least one computer processor, a request for removal, by a u-ware removal software program, of at least one file of the first plurality of files installed for the unwanted software program; determining, by the at least one computer processor, that the removal of the at least one file of the first plurality of files installed for the unwanted software program violates the EULA based on the at least one restrictive term; and complying with the at least one restrictive term of the EULA by automatically removing, by the at least one computer processor, based on the state information and the violation determination, each remaining file of the first plurality of files installed for the unwanted software program and each remaining file of the second plurality of files installed for the wanted program.
10. A method for analyzing an end-user license agreement (EULA), comprising: sensing, by at least one computer processor, an installation of a software package comprising a wanted software program and an unwanted software program; intercepting, by the at least one computer processor, the EULA from the software package; detecting, by the at least one computer processor, at least one restrictive term of the EULA indicating that a first removal of the unwanted software program requires a second removal of the wanted software program; detecting, by the at least one computer processor, an end-user agreement to the EULA; monitoring, by the at least one computer processor, the installation of the software package to generate state information including information about the at least one restrictive term of the EULA, a first plurality of files installed for the unwanted software program, and a second plurality of files installed for the wanted software program; detecting, by the at least one computer processor, a request for removal, by a u-ware removal software program, of at least one file of the first plurality of files installed for the unwanted software program; determining, by the at least one computer processor, that the removal of the at least one file of the first plurality of files installed for the unwanted software program violates the EULA based on the at least one restrictive term; and complying with the at least one restrictive term of the EULA by automatically removing, by the at least one computer processor, based on the state information and the violation determination, each remaining file of the first plurality of files installed for the unwanted software program and each remaining file of the second plurality of files installed for the wanted program. 12. The method of claim 10 , wherein the state information further includes a unique identifier for identifying an association between the first plurality of files installed for the unwanted software program and the second plurality of files installed for the wanted software program.