title: How to prevent client to do reverse-engineer on .net .dlls
body: <p>I want to protect my .dlls from reverse engineering.</p>
  
  <p><strong>My scenario:</strong></p>
  
  <p>I have an Asp.net website and that website I already hosted on client's server (IIS). Now I set some XYZ date in my system. That system should work until that date. once that date is become current date at that time User will get a popup message "your licence is expired. Please contact to Vendor."</p>
  
  <p>Now clients comes to me and ask for re-new licence and pay me some amount. I will generate new date in an encrypted string. I will just give that encrypted string to the client. The client will insert that encrypted string in the system and that encrypted date will be stored in ABC table in the database.</p>
  
  <p>Now <strong>some technical client</strong> tries to update that encrypted date in that ABC table in the database by de-compiling  or reverse-engineering, and they will get the string token key which we used for encrypt/decrypt logic, and also gets the encrypt/decrypt function from my .dll. </p>
  
  <p>Now they can easily generate the new date in an encrypted form and update that in table into database.</p>
  
  <p>Please someone can help on that - How can I prevent this.</p>