sehs33 posted on Oct 9 2006 at 07:22 PM said:
3) For me I believe that the greatest asset that should be protected is the code, WHICH CAN BE COMPLETLY PROTECTED, the fear of code exposure depends on:
a. If the code is in low level languages like c or c++, you should never worry, a decompiler for those languages is an animal that doesn't exist.
its called ida pro and it will carve up your binary like a hot knife in butter.
b. Since we should soon have Java based apps, and maybe one day Flash ones, this is a thing to be worried about, but not for a long time; those higher level languages can be decompiled with publicly available tools, and the main solution to this problem is "obfuscators", if you obfuscate a code, IT CAN NEVER BE DECOMPILED TO THE SAME CODE YOU HAVE WRITTEN, depending on the level of obfuscation, thieves might (in best case scenarios) end with a complicated version of the original code, and this will require them to drop the idea of code re-use since it will be much easier to write it from scratch.
i wouldnt worry too much about java + flash apps on the gp2x...
c. Encryption will be good only for hiding special strings, such as the ones used to store serial numbers, when the encryption algorithm is obfuscated too, anyone wishing to try decrypting that string will suffer alot (it might take years to decrypt such a string, imagine what will happen if you added another two or three non used encryption algorithms to the code, obfuscated them all, and now pirates will need much longer times to figure out which algorithm is the one used for your licensing system).
its called system flow, and unused code is unused code. all it boils down to is a single instruction that says 'equal to' or 'not equal to'. you might have 100 encryption ruotines and stuff, but somewhere in your code you will have a isregistered() == 0 or something, and patching that one little instruction is all that is needed.
I know that some might disagree and say this can be broken, but to make it clear, the longer it takes them to break your protection, the less interested they will be in violating your intelluctual property, and if you changed the licensing schema regulary with every major release/update, it will be like hell to them.
and in the process, breaking all previous registration keys... so each release requires a new key for everyone. (good/bad depending how you look at it).
basically, it all boils down to a dream world. I'm not against commercial software and reasonable efforts to stop piracy. Ive paid for loads of palm software. Ill buy vektar as soon as its available as a download if its reasonably priced. same too with payback.
ive cracked and trained software from c64 to amiga to pc. the only stuff i never broke was a cad program that had a hardware dongle. (mind you this is going back to mid 80s+ very early 90's)..
there are people who will pirate your stuff and tell you its too expensive even if it only costs $1.
a lot of software has an unreasonable price. one reason i loved palm stuff so much is loads of great apps only cost like $5 to $10.
to efega, if your worried about releasing commercial software on gp2x because you use png files and ogg files and someone can see them.. shesh. thats the least of your problems.
you have to decide, if you want to stop casual people going 'oh an ogg! i want to play it in my mp3 player'.. or do you want to inconvenience people and have some really complex scheme that will take you more time than its worth to implement?
weigh it up against how many copies you think you might sell / an hourly developer rate. will you sell more than what it costs to implement?