Method for protecting software from unauthorized use, wherein the software comprises executable software and a software library which provides the executable software with predetermined functions (F(X 1), F(X 2),..., F(X N)) for predetermined arguments (X 1, X 2,..., X N); comprising: applying a first function to a predetermined argument (X i) from the predetermined arguments (X 1, X 2,..., X N) in order to generate a protected argument (P(X i)) by means of the executable software in such a manner that the predetermined argument (X i) can be determined only by applying a first inverting function to the protected argument (P(X i)), wherein the first function is a cryptographic algorithm; transmitting the protected argument (P(X i)) from the executable software to the software library; applying the first inverting function (Q i) to the protected argument (P(X i)) by means of the software library in order to determine the predetermined argument (X i); providing the executable software with the predetermined function (F(X i)) for the determined predetermined argument (X i) by means of the software library; applying a second function to the predetermined function (F(X i)) from the predetermined functions (F(X 1), F(X 2),..., F(X N)) in order to generate a protected function (U(F(X i))) by means of the software library in such a manner that the predetermined function (F(X i)) can be determined only by applying a second inverting function to the protected function (U(F(X i))), wherein the second function is a cryptographic algorithm; transmitting the protected function (U(F(X i))) from the software library to the executable software; and applying the second inverting function to the protected function (U(F(X i))) by means of the executable software in order to determine the predetermined function (F(X i)). applying a first function to a predetermined argument (X i) from the predetermined arguments (X 1, X 2,..., X N) in order to generate a protected argument (P(X i)) by means of the executable software in such a manner that the predetermined argument (X i) can be determined only by applying a first inverting function to the protected argument (P(X i)), wherein the first function is a cryptographic algorithm; transmitting the protected argument (P(X i)) from the executable software to the software library; applying the first inverting function (Q i) to the protected argument (P(X i)) by means of the software library in order to determine the predetermined argument (X i); providing the executable software with the predetermined function (F(X i)) for the determined predetermined argument (X i) by means of the software library; applying a second function to the predetermined function (F(X i)) from the predetermined functions (F(X 1), F(X 2),..., F(X N)) in order to generate a protected function (U(F(X i))) by means of the software library in such a manner that the predetermined function (F(X i)) can be determined only by applying a second inverting function to the protected function (U(F(X i))), wherein the second function is a cryptographic algorithm; transmitting the protected function (U(F(X i))) from the software library to the executable software; and applying the second inverting function to the protected function (U(F(X i))) by means of the executable software in order to determine the predetermined function (F(X i)).