   A method of protection .Net assembly.
  Masters!Protection of assembly is based on a binding to a computer. A code of activation - hash from unique characteristics of hardware.My class CustomLicenseProvider inherit from LicenseProvider (override methods methods IsKeyValid and GetLicense). The algorithm of check of a code of activation is in these methods. Class CustomLicenseProvider are created on fly with Reflection-Emit. The encrypting source code of the methods is decrypting for Emit.CustomLicenseProvider.Create() occurs in random time intervals, then there is a check of the license (the entered key) with generated on a user computer key of activatio.Assembly is passed through DotFuscator.Assembly is protected from change by assignment to it strong name.Entered key stored in a .lic file.Me as pupil.   
  Where is the problem?   ;  I think he wants us to evaluate his protection scheme. If you think what you have described will work, think again. I am no expert, but based on my rather limited knowledge of reversing .NET, what you have described is really, really insufficient. I'd be interested in testing it out to see if I could break it though.P.S. If I am completely wrong in my evaluation, someone tell me.   ;Quote:Original post by Maxim SkachkovMasters!Protection of assembly is based on a binding to a computer. A code of activation - hash from unique characteristics of hardware.My class CustomLicenseProvider inherit from LicenseProvider (override methods methods IsKeyValid and GetLicense). The algorithm of check of a code of activation is in these methods. Class CustomLicenseProvider are created on fly with Reflection-Emit. The encrypting source code of the methods is decrypting for Emit.CustomLicenseProvider.Create() occurs in random time intervals, then there is a check of the license (the entered key) with generated on a user computer key of activatio.Assembly is passed through DotFuscator.Assembly is protected from change by assignment to it strong name.Entered key stored in a .lic file.Me as pupil.What language you using?;Excuse me, estimate my protection scheme please.I use C#.DaBookshah!I can give to you the application for testing the protection , but firstly I intend to implement this scheme.What recommendations on strengthening the protection are?;  5 days at max.Using law system of your country?   ;Quote:Original post by Raghar5 days at max.Using law system of your country?5 days to crack?Law system is poorly developed in Belarus and Russia I'm from.Additional way of protection - my manner of saling and releasing of new versions.   ;Quote:Original post by Maxim SkachkovAdditional way of protection - my manner of saling and releasing of new versions.How does that stop me from copying your program and emailing it to my friends? How does your hardware hash get its information? I know that I can drop a debugger in between the Win32 API and your program and feed faulty hardware data to it.   ;  Cool. I would be interested in that testing. Protection tips:Give up writing protection in .NET, its too high level. Even if you use this "Dotfuscator", I expect all it will do is remove additional information from your assembly. I assume that the result will still be examinable by an Intermediate Language Dissassembler ("Reflector" will convert IL back into your language of choice).Consider using an executable compressor/protector, although remember that MANY of them are BLOODY WEAK. I have heard good things about something called "Themida" though, especially the earlier versions.http://www.datarescue.com/idabase/gallery/dotnet.htmI'll PM you a link to a cracking paper where they show you how easy it is to reverse anything written in .NET.   