dcsimg

Licensing Solutions for .NET Applications

WEBINAR:
On-Demand

Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame


Protecting your work is difficult protecting, especially if you're a relatively small start-up, trying to generate an income and there is no affordable way to protect your applications from being pirated.

Unfortunately, the preceding sentence is also quite a common excuse for developers not protecting their work.

What are our options when this situation arises?

Not much from a developer perspective, but there are quite a few useful tools that may be worth a look.

First, the Developer Perspective

As mentioned in a "Protecting Visual Basic .NET Source Code and Applications," a relatively old article of mine, here are some options developers could implement to protect their code and applications.

Obfuscation

Obfuscation is the process of scrambling the symbols, code, and data of a program to prevent reverse engineering. Obfuscation tools mangle symbols and rearrange code blocks to foil decompiling. They also may encrypt strings containing sensitive data. It's important to understand that obfuscators (as they exist today) can't completely protect your intellectual property. Because the code is on the client machine, a really determined hacker with lots of time can study the code and data structures enough to understand what's going on. Obfuscators do provide value in raising the bar, however, defeating most decompile tools and preventing the casual hacker from stealing your intellectual property. They can make your code as difficult to reverse engineer as optimize native code.

Cryptography

Encryption is the process of translating plain text data (known as plaintext) into something that appears to be random and meaningless (known as ciphertext). Decryption is the process of converting ciphertext back to plaintext.

To encode plaintext, an encryption key is used to impose an encryption algorithm onto the data. To decode the cipher, a user must possess the appropriate decryption key. A decryption key consists of a random string of numbers, from 40 through 2,000 bits in length. The key imposes a decryption algorithm onto the data. This decryption algorithm reverses the encryption algorithm, returning the data to plaintext. The longer the encryption key is, the more difficult it is to decode. For a 40-bit encryption key, over one trillion possible decryption keys exist.

There are two primary approaches to encryption: symmetric and public-key. Symmetric encryption is the most common type of encryption and uses the same key for encoding and decoding data. This key is known as a session key. Public-key encryption uses two different keys, a public key and a private key. One key encodes the message and the other decodes it. The public key is widely distributed whereas the private key is secret.

Trial Applications

Trial applications allow only a specified limit in which the application can be used. Once the time limit expires, the application is unusable.

Available Tools

CryptoLicensing For .NET

CryptoLicensing for .NET is a licensing solution for any .NET application, including:

  • Windows Forms
  • WPF applications
  • Console apps
  • Components and controls
  • ASP.NET applications
  • .NET Core and .NET Standard assemblies
  • XNA and Xbox games and libraries
  • Windows Services
  • Mono

LimeLM

LimeLM lets you offer trials for your applications, track conversions of your apps, and sell your apps in many ways, including:

  • Perpetually
  • SaaS
  • Per-site basis

Infralution

Infralution Licensing System is .NET solution for licensing the following:

  • .NET Applications
  • Controls and Components
  • ASP.NET Web Applications
  • ASP.NET Web Components
  • Universal Windows Platform (UWP) Apps
  • Universal Windows Platform (UWP) Components

Other Tools Worth Mentioning

Last, but not least, here are some other tools worthy of your time:

Conclusion

Not all methods are perfect or cheap, but as a developer or a software house, you must put methods in place to protect your work and products.



About the Author

Hannes DuPreez

Hannes du Preez is a self-taught developer who started learning to program in the days of QBasic. He has written several articles over the years detailing his programming quests and adventures. .NET is his second love, just after his wife and kid. He has always been an avid supporter of .NET since the beginning and is an expert in VB and C#. He was given the Microsoft Most Valuable Professional Award for .NET (2008–2017). He has worked as a moderator and an article reviewer on online forums and currently works as a C# developer and writes articles for CodeGuru.com, Developer.com, DevX.com, and the Database journal.
His first book Visual Studio 2019 In Depth is currently on sale on Amazon and Bpb Publications.

You could reach him at: ojdupreez1978[at]gmail[dot]com

Related Articles

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date