Remember Me
forgot your password?

8 Ways To Make Your Software Hacker-Proof and Crack-Proof: Writing Effective License Checking Code And Designing Effective Licenses

CryptoLicensing uses the latest military strength, state-of-the-art cryptographic technology to generate secure and unbreakable license codes to ensure that your software and intellectual property is protected. Cryptographic licenses are unbreakable even when using brute force computing power. Furthermore, since the licenses can only be generated using the private key (which only you possess), this means that it is impossible for a hacker to develop a 'keygen' (key generator) for your software. This is an excellent first line of defense. It is upto you to provide the next line of defense. The following are some useful tips and guidelines for designing effective licenses using CryptoLicensing and writing effective license validation code using the CryptoLicensing validation API. The philosophy is simple: to make it as difficult as possible for the hacker to 'crack' your software and cause the hacker to lose interest in your software or not make it worthwhile for him/her.

Check license repeatedly

Instead of checking the license at software startup only, check the license at multiple points of time during your software execution and from multiple places in your code. Do not to use a single license validation routine in your software. Check for a license from different places in your software, but don't call a single license validation routine to do this. This ensures that a hacker cannot bypass your licensing scheme by simply hacking a single piece of code in your software and forces the hacker to locate every piece of license validation code in your program.

Use multiple licensing checking layers

In addition to the normal license validation done every time your software is executed, add another layer which checks for a license when a certain random criteria is met. For example, you can check for a license on the 2nd Monday of each month, or every 63 days, or on the February 29th of a leap year. If a hacker bypasses the normal license checking code, the additional 'guerilla' layer is still present which will check for a license and cause the check to fail.

Use encrypted dlls

Move some important part of your software in a dll and encrypt the dll using a key. When generating licenses using CryptoLicensing, embed this key in your license codes (use the custom user-data feature of CryptoLicensing for this) and decrypt the dll using this key before loading it. This ensures that even if a hacker bypasses licensing checking code, your software will not function correctly since it will not be able to load the encrypted dll file.

Check for the hash of your exe/dll to detect tampering

You can include the hash/checksum of your exe/dll in your license codes generated using CryptoLicensing (use the custom user-data feature of CryptoLicensing for this). When your exe/dll is loaded, you can recalculate the hash of the exe/dll, and compare it with that included in the license code. If different, this means that your exe has been tampered or modified. Similar to license checking, perform this check at multiple points of time and place in your software.

Do not display failures immediately

If a license check fails, note this but do not immediately display to the user that the check has failed. Instead wait for some other part of your software to run and notify the user there. This makes it more difficult for the hacker to locate and bypass your license checking.

Don't use explicit error messages

When notifying the user of a failed license check, don't use explicit and obvious messages such as 'License not valid'. Instead, display a generic failure message and ask the user to contact your support department. He may not know that the cause of the error is a failed license check, and when contacted, you may try to make a sale and convert the illegal user into a licensed user or even catch a hacker if he contacts you.

Crash or fail or output incorrect results when license check fails

In combination with above two, when a license check fails or when you determine that your software has been hacked or your license scheme has been compromised, note this and when your software perform some processing at a later point of time, you can crash your software or output incorrect results. Sometimes, a hacker may also lose interest in your 'buggy' program which does not even display informative error messages!

Embed user information in generated licenses

When generating licenses, embed some data about the user in the license such as the user's name, email or company name (use the custom user-data feature of CryptoLicensing for this). Display this information prominently at multiple places in your software. This is a very effective way to discourage the user from sharing his/her license code with others.

Original article : http://www.ssware.com/articles/writing-effective-license-checking-code-and-designing-effective-licenses-with-cryptolicensing.htm

G. Himangi

G Himangi is a Senior Software Developer at LogicNP Software (http://www.ssware.com) and is a member of LogicNP Software's component and controls development team.

Rate this Article: 0 / 5 stars - 0 vote(s)
Print Email Re-Publish

Add new Comment



Captcha

  • Latest Programming Articles
  • More from G. Himangi

More than calling and Texting!

By: Rapidsoft | 08/12/2009
The concept of a mobile phone itself has become different! These days, mobile phones serve not only the purpose of communication. A small, tiny handset device can give you much that can be beyond your imagination.

Spotting a Genuine Search Engine Optimization Company

By: kayla tyler | 08/12/2009
Those in the know will advice people who are just about to launch their new website that it is more important to acquire the service of a search engine optimization company than to spend time analyzing which design template will work best for their website.

Stay Away from Ineffective SEO Companies

By: kayla tyler | 08/12/2009
This is the age of online marketing and advertisement thus the constant demand for a search engine marketing company that is capable of providing an array of services that range from search engine optimization (SEO) to pay per click ads management.

How to Convert FLV video to MP3 for iTunes or Garageband on Mac OS X

By: terryly | 08/12/2009
If you have some FLV files but you only get the audio but no video, you can compromise by extract audio from it and then listen to it. You might want to extract MP3 audio from FLV format episodes or a movie to iTunes for playback on your iPod, as ringtones for iPhone, or to create your own masterpiece in Garageband. The question is: how to convert FLV to MP3 for iTunes or Garageband

Blackberry Application Development – A Latest Trend in Market

By: Daviodjones035 | 07/12/2009
The above article, by and large brings forth the facts that led to the immediate success and popularity of Blackberry pagers and now, mobile phones. The establishment of which has led to an immense increase in the Blackberry Mobile Application Development and software market.

IEEE 1588 Time Protocol Promises More Accurate Time Synchronisation

By: Richard n Williams | 07/12/2009
Despite being around for over twenty years, the current favoured time protocol by most networks, NTP (Network Time Protocol) has some competition.

Change Your Lifestyle with New iPhone App Development

By: Vimal Mistry-seo | 07/12/2009
The computing world is shrinking from big computers to desktop to laptop to palmtop and now to mini mobile devices, may be with no limits. Arrival of iPhone in the market has created the buzz like never before.

AJAX CascadingDropdown in Asp.Net

By: pons_saravanan | 07/12/2009
A pure webservice based cascading dropdown list developed using ASP.Net.

8 Ways To Protect And Obfuscate Your .Net Code Against Reverse-Engineering Using Crypto Obfuscator

By: G. Himangi | 23/10/2009 | Software
Crypto Obfuscator arms .Net developers with a powerful code protection and obfuscation tool which enable them to deploy their .Net software without fear of IP theft, reverse-engineering, hacking, cracking and piracy.

Add Network Floating License Capability To Your Software With CryptoLicensing

By: G. Himangi | 18/09/2009 | Software
A network floating license is an essential requirement for some types of software and for some customer scenarios. CryptoLicensing makes it extremely easy to add network floating licenses functionality to your software via its customer deployed license service.

8 Ways To Make Your Software Hacker-Proof and Crack-Proof: Writing Effective License Checking Code And Designing Effective Licenses

By: G. Himangi | 23/04/2009 | Programming
This article provides some useful tips and guidelines for designing effective licenses and writing effective license validation code. The philosophy is simple: to make it as difficult as possible for the hacker to 'crack' your software and cause the hacker to lose interest in your software or not make it worthwhile for him/her.

Folderbrowserdialog Unmasked: Everything You Wanted to Know About the Folder Browser Component From .net Framework

By: G. Himangi | 21/11/2008 | Programming
The FolderBrowserDialog, available as part of the .Net framework, provides a folder browser component for your C# and VB.Net applications. The UI consists of a modal dialog which contains a tree control displaying all the files and folders on the system. The user can then browse and select a folder from the tree. The full path of the selected folder is then returned. In this article we will learn more about the FolderBrowserDialog, its usage, properties and limitations.

Shell Megapack : Shell Browser Components & Controls for Mfc, Vb, .net, C#, Vb.net, C++, Delphi ,vba

By: G. Himangi | 10/09/2008 | Programming
Shell MegaPack consisting of a folder tree control, a file/folder list control and a drive-selection control completely mimics the Windows Explorer UI including Thumbnail, Detail & Group View, dragdrop, icons, context menus, virtual items, infotips and renaming. Also included is the ShellObjects, set of components for creating quick launch-like appbars, displaying multiple MSN/Office2003 style popups, wizard UIs, animated tray icons, automatic form resizing, Vista-style task dialogs.

Submit Your Articles Free: Signup
Article Categories




Use of this web site constitutes acceptance of the Terms Of Use and Privacy Policy | User published content is licensed under a Creative Commons License.
Copyright © 2005-2008 Free Articles by ArticlesBase.com, All rights reserved. (0.24, 5, w1)