Post by markspacePost by Joerg MeierPost by Java EncryptorSo basically there is no way we can prevent our class from de-compiling.
No, of course not - in the end, the computer still has to be able to decode
them to run them, and anything the computer does, a potential thief can do.
It's best to just obfuscate your code and then be done with it and accept
that some people will be looking at your code.
Obfuscation can make stack traces and log output hard to read (they'll
print the obfuscated class and method names).
ProGuard at least, which is free and the #1 java obfuscator/optimizer,
provides a listing of pre- and post-obfuscation names, so that a stack
trace can (automatically) be unobfuscated.
Post by markspace1. Provide enough value that it's more work to steal code than it is to
subscribe to your service/product.
I enjoy to code, and I do not enjoy support. I do what I must, but the code
I write is the main 'product' I supply. While in general and for a company
I would agree, that just isn't always feasible.
Post by markspace2. Keep some of the code on a server where folks can't get at it, and
make API calls over the network to return results.
That of course has the same issue as the 'encrypter' that started this
thread. I prefer to keep some crucial assets on the server - such as the
xml specifying units in a game for example - because as shown it is
relatively easy to google how to get a class from a running Java program,
but while getting whatever resources I get would be just as easy, it's not
as easily googleable. [1]
Post by markspace3. Use the courts for egregious cases of theft.
Especially due to internationality that only really becomes an option above
a pretty high threshold, that for example the typical Android app just
wouldn't cross.
[1] - I recognize that that is 'security by obscurity', but the difference
here is that I do not aim for 100% security, just to raise the difficulty
to a level where my effort to implement it is still very low while the
amount of people turned back by it is still very high - a level typically
reached once you can't easily google the problem without knowing the
context.
Liebe Gruesse,
Joerg
--
Ich lese meine Emails nicht, replies to Email bleiben also leider
ungelesen.