I am writing a .NET software which is doing calculations and drawing in real-time i.e when the user is moving the mouse. I want to protect this software from being reverse engineered and restrict its execution to only a specific computer based on Hardware ID. What .NET software protector would be a good choice for this scenario ? I came after Themida and VMProtector which I found to be promising. What is your opinion about the security options that these software offer with respect to the impact they have on the executable's run-time performance? Do you know any other available tool suitable for the case I am describing ?