1. A method for preventing the unauthorized modification of a software or unauthorized modification of runtime data comprising the steps of: a. Providing a converter, capable of converting said software into a generalized machine code, that cannot be reversed engineered, by using a conversion process that causes data loss and b. Providing an interpreter, which the knowledge of its process method is kept restricted, c. Interpreting, by said interpreter, said general machine code into a specific machine code while reconstructing the lost data during the interpretation process.