Best Techniques For Fighting Software Piracy?
May 19, 2011
From what I understand, it is still impossible to prevent software piracy until a global Internet is established.
In the meantime, I'm looking for suggestions on how to protect any new projects I design.
View 9 Replies
ADVERTISEMENT
May 3, 2012
The original post provoked more responses than I anticipated. Therefore I have tried to draw them together with this post.There appear to be several schools of thought on this issue.One holds that I should not release time-bombed software because it is illegal.
Suppose I include code that often randomly checks if the user is registered and then puts up a message and shuts down the program if a check fails - rather like an improved nag screen. Would this be regarded as illegal?One holds that I should not worry about it because the pirates wouldn't buy my software anyway.
Maybe, but there's no fun in that.One holds that it is a waste of time because it is impossible to protect 100%.Maybe, but once again no fun.My view was that an honest user buying from my site would get a genuine copy. If a dishonest user got a harmful copy and lost the lot then I couldn't care less.Reed Kimble pointed out the existence of "fake sellers" who could cause harm by selling honest users a dishonest copy.This is a problem that I had not thought of and it poses a dilemma.
If I do include protection, then how do I distinguish between and honest user and a dishonest one? They will both be caught by the protection.should I not include any protection at all so that the honest user doesn't lose out, and just accept that the dishonest one gets away with it?Or nail the pirate and accept the honest loser as collateral damage?
[code]....
View 8 Replies
Jul 18, 2011
Here is a link to a FREE whitepaper relating to;"From Hack to Counterattack: A Guide to Protecting Software Products Against the Top 8 Piracy Threats"in case any of you want to get it? url...If you do not want to enter your details on the above page then go here: url...Try the World's Strongest Software Protection Today.You can download the Sentinel HASP software DK Version 5.10 right now or request the full Sentinel HASP DK at no charge. The standard Sentinel HASP DK enables you to test Sentinel HASP with both HASP SL (software) and HASP HL (USB dongle) protection keys. The software DK enables you to test Sentinel HASP with HASP SL protection keys only following a simple software download.[code]
View 6 Replies
Aug 18, 2011
I just know it works. So as a personal project I'm trying to learn in VB/C# all about Cryptographic methods and how to use those techniques to encrypt and decrypt files. [code]
View 2 Replies
Apr 10, 2009
Ok heres my idea Start(button)> start timer1 countdown> keypress> start timer2 countdown> keypress2> if keypress2 happend twice> then keypress3> loop> end>I understand the science behind it but I fail to grasp the knowhow of the program lang if anyone knows how this could be done in VB Express.
View 9 Replies
Aug 20, 2011
Basically, my program will try to generate the list of all possible lowercase 5-letter words. Including all combinations that clearly are not real words like jshcc or mmdzq.
I do that by stacking up a massive amount of calls for a function, which does the word work.
But that's simply too much, and I get a stack overflow error.
View 3 Replies
Jun 11, 2011
Does .NET have built-in techniques for more complicated forms of iteration like the following:
1. Iterate over rearrangements of a list.
2. Iterate over subsets of a list.
3. Iterate over all indexes of a multidimensional list.
4. Iterate over all "combinations" of a list, i.e. all subsets of a list of a given length, where subsets that differs only in their ordering occur only once total.
I recently had cause to do (1) and my method was ugly, slow, tedious, and generalized poorly, which is why I ask. I can think of better ways, but it was garbage code anyway [brute force checking that there are precisely 576 seven-digit numbers made up of 1, 2, 3, 4, 5, 6, and 7 that are also divisible by 11]. The others are just for my own curiosity.
View 4 Replies
Aug 19, 2010
While I've mainly been developing small applications for personal use, I stumbled upon making a touchscreen application for a close friend. While he is not very good at programming, he is pretty well at drawing/etc... So, I thought about expanding my horizons some.I already have code that loads images from a folder, and made that folder changeable via the program, so in effect, probably a horribly coded way of skinning some parts of the program (the buttons). But then I though about it some more and really wanted to learn a better way to make my programs 'expandable'.I have begun searching about how to make a program that can be used with plugins, how to make plugins, and so on... I am researching about dynamically changing controls and other things, so that when resolutions change, I don't have to code each individual buttons new size/location, and, most importantly, a way to implement patching/app upgrades...
View 2 Replies
Jan 31, 2012
I have adopted a technique where I pass existing objects to forms so that they can display the object's content and allow the user to alter it if necessary. The form is not bound to the object, so when it comes time to act, the form sweeps up the content of its controls and puts them into the object. The object is then validated and any issues reported to the user. If the object is valid, it may be handed back to the caller so the caller can refresh a view/list/etc.
So far, so good. However, if the form's content, or lack of, creates an invalid object and the user does not correct it, maybe cancelling the form, there's a chance the form will hand an invalid object back to the caller. This is not good.
Essentially I'm looking for an elegant and efficient way of either leaving the object as it was or rolling back if the user cancels the form/action.
I have considered a range of techniques, each with many pros and cons. I'm keen to consider some other views.
View 3 Replies
Apr 19, 2010
i have created some shareware applications. I implemented the following mechanism for piracy protection. Before Windows Vista and Windows 7 i did write a dll file to the System32 folder with an encrypted license key. Also in the Registry under HKEY_LOCAL_MACHINE i inserted a registry key.
The problem is that with Windows Vista and Windows 7 due to the User Account Control (UAC) this is denied.
I want to ask : what other mechanism can be implemented ? Where should i store the encrypted key file and the registry key.
I want that the application can be installed for all users of a computer only once.
If i stored the key in the user's application data directory then another user could easily just install it under another user account. Also i do not want to put the key file in the application directory because that would be too obvious.
note that i create the registry key with my application and not with the installer.
View 2 Replies
Jul 18, 2011
I have the following "contact" data (exampled below) stored in an xml file.I've created a frmContacts windows form and placed a list box control inside it.I'm new to the list box but plan to have the users manage the list by letting them add, delete, and pick from it. For searching there should also be a sort function/button (by last name then first name).If the user deletes from the list the corresponding data in the file will be deleted.If the user picks from or adds to the list, I'd like to find the best way to populate the corresponding data elements on another form (i.e., in their respective text boxes). This will include the ability to edit/save from this other form too.
<?xml version="1.0" encoding="utf-8"?>
<Rows>
<Row>[code]......
View 1 Replies
Jun 6, 2011
I'm currently debugging a form that sets a flag when the mouse button is pressed, then clears the flag when the mouse button is released. As long as the mouse button is pressed, the user can move the mouse around and a few things happen depending on where they move. One of the things that happens is that a timer starts, or stops, and a few things change color depending on the mouse position. The timer starts when it should, then stops when it should, but once stopped, it is not re-starting when it should. I can verify that MouseMove events are getting through, because coloring changes as I move the mouse, as it should. This would be a simple thing to debug...except that it requires the darn mouse button to be down, and it uses the mouse move event. Anybody who has put a breakpoint in a mouse move event handler knows the issue: There are THOUSANDS of them. Worse yet, since the mouse button is necessary for switching to the IDE, as well as setting a breakpoint (technically, a keyboard shortcut could do this if I could shift focus), I can't wait for the problem to happen, then switch to the IDE and set a breakpoint to see what is happening then.Does anybody have any tips or techniques for debugging in mouse move events when the mouse button is down and has to stay that way? As it is, I'm going to have to write some funky code into the method just so that I have a place to get a breakpoint when I need it without breaking on every one of the mouse move events.
View 7 Replies
Jun 6, 2011
I have a program that runs a pretty long operation in the background once a user clicks the button. I have implemented a progress bar but if the window is touched or moved then it grays out and says (Not repsonding). Everything still works and when the operation finishes the program resumes function. (But a user would not know this
View 3 Replies
Apr 6, 2011
So I have a relatively small website with growing amounts of data - the fastest growing table is pageviews, as we do all our analytics ourselves. The website is made using VB.Net, SQL Server 2008 and jQuery. I am limited to .net 2.5.I currently handle all the data and validation using objects with a list of attributes. Each attribute is of a specific datatype and has a validation function when a new value is given to it. If the data does not validate then it won't even get as far as updating the database and feeds back an error to the user. Currently I have "Manager" classes and "Item" classes - Items are managed by a particular Manager class, for example Users are managed by the UserManager, so to get all the users I just have to call UserManager.Items. These Manager classes are stored in the cache and are created as needed - but once a Manager class is referenced it creates all of the Items within it. This is getting rather slow now, as the company is growing fast. It takes 2 - 3 seconds to load the first page (the page which makes most first-time requests to data) but I am not happy with this time. After that it is nearly instant.
Now the way I see it I have 3 options to speed the website up: Keep it as it is, but try to make it more efficient through other techniques;Change to creating all these objects on every page load, in the hope that it is simply so slow because I am using the cache to store a fair amount of data (about 10 MB or so at least);Forgetting using object oriented techniques and just use straight SQL queries and loop through records.
View 1 Replies