Unless you have the ability to take raw materials and magically form them into hundreds of functioning products in the blink of an eye, you can’t just skip over the production process. If you want software to be unique, it needs to be re-produced every time. If you want software to be treated like physical products, it needs to be created the same way. The idea is to have a unique one-of-a-kind serial code that is stored inside the program and compiled with it. This serial code will never be used again for another copy of the program, and cannot be used with any copy of the program. That being said, there would not be a need for users to enter this serial code, so it could end up being hundreds of characters long. Computers these days are extremely fast, and creating discs to sell in stores is becoming less of a standard, so making these “unique” copies should not be a burden for developers to recompile the software; a new unique copy can be created whenever needed. The next step would be something like a DRM, but the DRM is integrated into the program itself. DRMs today are overall useless, as they are a separate entity from the software. The more doors you have, the more likely someone is going to break in and unravel the secrets behind all of them. Here are the steps of how my “DRM” works:
- The corporate server (which has all serial codes that were used) sends a randomly generated code containing 100 characters.
- This code is decrypted with a cipher that all of the compiled programs know (and is also hidden from the user). The cipher should be changed whenever an update is released.
- The code is then re-encrypted using the unique serial code of the local program, and sent back to the server. The point of step 2 is the identity of the built-in serial code is concealed.
- The server will then decrypt your code and check its databases if it is authentic.
- If it passes, the server will then send 10 more separate encrypted codes, with only one that can be decrypted containing the correct answer.
- If one of the codes is correct, the software will launch and inform the server. If all codes are incorrect, the program deliberately corrupts itself. By not reminding the server, the code then becomes blacklisted. Calling the company is the only way to reverse it.
- If the code is used in more than one location or by a different MAC address, the software will send an email to the original owner and refuse to start without entering a randomly generated serial key.
Determining the Value of Software
The following is a survey you can fill out that can determine the approximate value of software. Think of a piece of software and answer the questions as honestly as you can. The starting score is 0. If something tells you to add 2 and is only partially true, add 1.
Note: Any questions involving “competitor”, “other products”, or “older version” can be ignored if it is the first or only product of its kind.
If the product(‘s)…
- doesn’t contain large quantities of code (including engines) from other products, add 2
- doesn’t contain large quantities of resources (graphics, sound, etc) from other products, add 2
- majority of key features revolve around ideas that it started or are unique, add 2.
- is overall better than it’s competitors in most/all tasks, add 2. Add ¬her 1 if the product has been consistently the best for 6 or more years.
- performs about the same as competitors, add 1. If it performs significantly better, add 2
- as resource efficient as other products, add 1. If it is notably more resource efficient, add 2
- is very stable/reliable, add 1. If it is more stable than all older versions and competitors, add 2
- is user friendly but dumbed-down or limiting, add 1. If user friendly and unrestrictive, add 2
- notably more secure (from either malware or personal information) than older versions and competitors, add 2
- can operate on more than 3 different types of hardware platforms and/or kernels, add 2
- does not contain ads or sponsor 3rd party major non-free products, add 2
- has (more) desirable features older versions and competitors don’t offer, add 1. If the product has desirable features competitors don’t offer at all, add 2. If either one is free, add another 1.
- has free additional content, add 1. Add another 1 if free content is regularly submitted
- rarely needs patches/updates and doesn’t need them, add 2
- uses features that are compatible with competing older versions and programs, add 2
- is a necessity to accomplish something, add 1. Add another 1 if the task is vital/crucial
- required expensive research, add 2. If used someone else’s research, subtract 1
- involves content that doesn’t have many noteworthy mistakes, add 1
- involves unique content that involves/demands professional skill, add 2
- was new and up to 25% cheaper than competing product, add 1. If over 25%, add 2.
- was or still is over 25% more expensive than competing product, subtract 1. If it was/is greater than 50% more expensive, subtract 2
- involves content that is explicitly undesirable, or, ignores/lacks user requests then subtract 1
- contains stolen content, subtract 2. If it contains stolen ideas, subtract 1
- exists (or has features that exist) solely to snuff out competition, or, just for profit, subtract 2
- is blatantly incomplete but released anyway, subtract 1. Subtract 2 if it has a competitive price
- isn’t free and has more or as much DLC as free-to-use competitors, subtract 1
- sponsors at least 3 major non-free products, subtract 1. Subtract more for every additional 3
To find the value of the product, divide the score by 42, multiply it by 1.5, and then multiply the product’s price. If a product somehow ends up being in the negatives, that probably means the developer is at risk of getting sued. A score of 27 or 28 would be considered perfectly priced.
As an example, lets say a product is a 24 and is worth $50. That would be 24/41*1.5*50, which states the product is worth $43.90.