![]() ![]() For the latter, it might just mean checking a plain-text date in a configuration file. In this first case that means either failing to install or installing in trial-version mode the second time. Therefore the best way to tell the user where the boundaries are is if the out-of-the-box behavior for your application complies with the license. ![]() No one reads them, and they really shouldn't have to. Licenses are made-up things that nobody cares about until they need to. You need to do this much because users don't care about your license. Someone who does that knows they are breaking your license, and as long as a user knows when they are in violation you've done enough. ![]() Don't even worry about simple things like if users can just roll back the system clock. You'll want a good error message to prevent extra support calls, but don't spend extra time making it too hard to work around and don't hit users over the head with it.Īnother example is a time-limited trial. In my opinion, you need to secure your application just enough that someone can't accidentally pirate your product, and no more.įor example, if you use a per-machine license, it shouldn't just work when you install it on a new second machine. If systems like the Playstation and iPad can get cracked - where the vendor even controls the hardware - what hope does your app have? Thankfully, you don't really want to. You can't fully secure any application (managed or not). I took out all the phone-home code except for the barebones license functions and never looked back. Not only that, but I was hurting my true customers will all these extra protections I was putting in.Īfter a long battle I realized I was fighting the tides and all this time wasted was for naught. I should of course have been working on making my application better instead of trying to stop the inevitable. I immediately added in a bunch of draconian DRM code and attempted to sabotage any person using an illegitimate or cracked copy. Here I was, a small-time developer, pouring my heart and soul into an application and these people had the gall to pirate from me?! They were taking money directly from my pocket! I've had my application pirated before, and I took it as a personal affront. These are your true customers, and you should focus your efforts on providing them with a good user experience and ignore the people cracking your software. There are however, many businesses out there who would never risk a lawsuit and happily buy software licenses and many computer users who either don't want to risk it, find it wrong or are not tech savvy enough to pirate. There are some people who are never going to pay for your application no matter what and these are the people you don't need to worry about. You just need to accept that there is a very real chance people are going to pirate your software. All your hard work with your complex license code can be undone with a single byte patch. A packed application can be unpacked and obfuscation only prevents it from making it a walk in the park. Look at all the commercial software out there that has a vast amount of resources to protect their applications and yet they are cracked before the applications are even released to the public.Ī skilled reverse engineer can fire up IDA-Pro and slice through your application like butter no matter what you do. Ultimately though, if people want your application cracked they will. The tutorial How to write your own packer gives a ton of good information on writing your own Win32 packer. Sometimes custom packers can be very effective, because there aren't well published methods on how to unpack them. If the third-party packers are too expensive, consider writing your own. NET Reflector and makes it a pain to unpack for reversing. This stops people from reflecting your application in. NET executable into an encrypted Win32 wrapper application.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |