C++ anti piracy algorythim

Pages: 12
I was thinking up a new way to protect data, here is what i came up with, please tell me if its possible. Here is 2 of them i think the second ones better

1. Write all text and comments in a language created by the software developers that only they know, write
all code comments in the language, including the names of variables. If possible make a new font type of
symbols and use it with the program so you can make numbers symbols as well. This way if someone
were to see the source code they would have no idea what they were looking at. If you make a font type
then scrambleup all the letters and dont put what symbols mean what, so dont put A B C D etc in order
make it S Q T B N L K or something like that. Also adding product keys will also help.


2. Write a program and then have a function that jumbles all the data up into random order and that data is
saved to an encrypted file that is written in a human language that only the developers know. The program
saves the way the program was encrypted by means of different algorythims which are also randomly
generated and those algorythims are saved too, and when the program opens, it finds that algorythim data
and reads the data the way it was written so it can be used, if the algorythim data is lost or not there the
program will not work. So to make it clearer the program creates a set of random algorythims, which are
used to umble up the data, this data is unique to this algorythim and cannot be duplicated, if the algorythim
is not there or is not written to the file then the game data will be corrupted and un useable. When the
program starts it unencrypts the data, then reads the unique algorythim, then based on that algorythim, puts
the program back together. Everytime the program data is saved, it generates a random encrypted
algorythim. So basically the program takes all the .exe's data and jumbles it up based on this unique
algorythim and when its started up again it cant be used unless it is read. The algorythim is also jumbled up.
Goddamn. It's "algorithm", not "algorythim".

All this sounds more like anti-reverse engineering than anti-piracy. I don't need to know what "ñaouwrbuvuoawbavliybñiva" means to be able to copy it.

1. I'm confused. What? Are you proposing changing the font used to display the source code? This doesn't actually change the contents of a file, just how the file is displayed. The other person could easily choose not use the font you designed. Why would you distribute the source code in the first place?
How do "product keys" fit into this?

2. Distributing encrypted contents and the function used to decrypt them is the same as distributing the contents decrypted.
So to make it clearer the program creates a set of random algorythims, which are
used to umble up the data, this data is unique to this algorythim and cannot be duplicated
Why can't the data be duplicated? For example:
"Uryyb, Jbeyq!"(decrypt with ROT13)
I can easily copy the encrypted data, like so:
"Uryyb, Jbeyq!"
I can even copy the algorithm along with the data:
"Uryyb, Jbeyq!"(decrypt with ROT13)
Now anyone can take my copy, apply the algorithm, and get back the original.
The algorythim is also jumbled up.
This is problematic. How will you know the algorithm if it has encrypted itself? This is like locking a safe with the key inside it.
closed account (S6k9GNh0)
People are able to decipher Minecraft which is run several times through different programs that obfuscate the source with little problem. I highly doubt this would matter. #2 sounds kinda silly tbh.
Last edited on
the data would jumble up the exe file with random data each time so when its run it would read the unique algorithm pattern and "put it all back together" so each time the data is written its never the same. as for the source code font change, people can open the program and search for a string to find making it easier to get data like key numbers and such, changing the font would prevent them from being able to find those words. It could be made so if the font is not fount the program wouldnt work at all.

The algorithims pattern is in the file as well so it can read it but everything is all messed up and just different odd incoherent symbols and text.
Last edited on
the data would jumble up the exe file
Data doesn't do anything. Code does. Some code needs to start out in unencrypted form in order for the computer to understand it.

changing the font would prevent them from being able to find those words.
Not really. A font is nothing more than a file with a bunch of pictures that tell a graphical environment how to draw a character. Using a different font is trivial, and doesn't actually change the contents of a file.

It could be made so if the font is not fount the program wouldnt work at all.
I don't need for something to function in order to look at it.

None of your ideas make any sense, sorry.
well, im still working out the details, it will make sense in time, this stuff was just jotted down as fast as it came into my brain so i have alot of re working to do.
closed account (S6k9GNh0)
There's seriously no point. Nothing you're even thinking about hasn't been tried before (if it makes any possibility to be tried).

Some of the most intelligent people in the world have yet to figure out how to prevent cracking of programs. You don't get many brownie points for trying to maximize DRM and code-protection either. Rather, it makes people rather angry at you when things go wrong, especially when money is involved.

So far, probably the best methods consists of checking against an online database. But, remember, this is why people were so mad at Blizzard during Diablo 3. Their servers were overloaded and people couldn't play for days, some even for weeks.
Last edited on
hmm, well i guess it was worth trying to figure out :/. so what hasn't been done or what could be improved that are in the realms of possibility?
closed account (S6k9GNh0)
The realization that licensing is a better defense than preventing the inevitable. Optionally just keeping your source closed but that's arguable.

EDIT: I personally keep all projects open with a proprietary license (or no license) to prevent legal theft. I have had code stolen from me before but I don't code commercially anyways.
Last edited on
What if it wasnt anti piracy but anti reverse engineering? would that work better or no? or at least make it harder? i read you cant fully make it so you cant reverse engineer it because it can be decompiled to Assembly.
Last edited on
closed account (S6k9GNh0)
Seriously, its too much trouble for what it's worth (where worth is about maybe a week worth of extra time before some guy figures everything out).
Personally, I approve of trying to come up with anti-reverse engineering techniques as a learning experience. You're still quite a long way away from doing anything like that, as you lack even basic understanding of how a computer works. At least that's what I see judging from everything you've said in this thread.
closed account (zb0S216C)
I would't even bother:

http://programmers.stackexchange.com/a/46460

Wazzak
closed account (1yR4jE8b)
I personally keep all projects open with a proprietary license (or no license) to prevent legal theft.


This doesn't make sense. That's like leaving a bank vault open with no security guards and only a sign saying "Please Don't Rob The Bank".
closed account (o1vk4iN6)
Both techniques you mentioned are basically what they already do with obfuscation code. People get by it though, just look at minecraft. They pretty much deobfuscated the entire game.
closed account (z05DSL3A)
darkestfright wrote:
This doesn't make sense. That's like leaving a bank vault open with no security guards and only a sign saying "Please Don't Rob The Bank".
or like not putting restrictors on cars and putting signs up along the road that tell you what the speed limit is...oh wait... ;0)
closed account (S6k9GNh0)
No, it's not. You cannot take the souce legally and you're found out taking code that's assigned a proprietary license, expect yourself in a court room.

It's more like having an open vault and then having people guard from afar. When people take from the vault, those people rob them back for more with penalty.

EDIT: Unless they live in a country where this can't be applied or have their internet shut down. Then just hope that your software is well established enough that nobody falls for the spoof.
Last edited on
closed account (1yR4jE8b)
You cannot take the souce legally and you're found out taking code that's assigned a proprietary license, expect yourself in a court room.


If the code is openly available on the internet, how exactly do you plan figuring out that someone took the code? Someone can just take it, change it, close the source and then sell it.
Last edited on
RCE. That's how GPL violations are discovered.
You could sue them for it decompiling your program tho.
Pages: 12