> I'm planning on distributing some java apps. I'm a bit preocupied that
> some of the users may try to decompile the jars and learn about the
> source.

Signature
The comp.lang.java.gui FAQ:
http://gd.tuwien.ac.at/faqs/faqs-hierarchy/comp/comp.lang.java.gui/
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq
>> I'm planning on distributing some java apps. I'm a bit preocupied that
>> some of the users may try to decompile the jars and learn about the
>> source.
>
> Are you ashamed of your code?
Not very relevant comment, is it?
> Let's face it. Almost 100% of the code of
> an typical commercial application is trivial
Yes, but this poster code might not be, that might be why he asks the
question. You are generalising your respons without knowing the details
of the application.
> in the sense that there are
> no breakthrough algorithms or top-secret information in the code.
[quoted text clipped - 3 lines]
> understanding an algorithm consists of much more than just decompiling
> the code.
There might be pieces of information in the code that the OP wants to
protect, such as structure of communication/systems etc in the backend,
passwords/certificates in the code and so on, or just some small smart
way of doing a single thing which one can make some money on.
> Easy decompilation makes the hacking simpler, but difficult
> disassembling doesn't prevent the hacking.
No, but it can stop the general script kiddie and similar crackers.
The point of such things are not necessarily to make 100% unbreakable
solutions, as one would except from a technical perspective. But rather
to create barriers to shut out 99% of the people trying, its basically a
psychological game on human nature.
It would be nice if the community could started talking about security
and similar things pragmatically instead of ideally. Yes, most solutions
are ugly if they are not 100% perfect, but that's a technical problem.
Sure, for some problems only a 100% solution is good enough, such as
encryption etc. But in real life, a lot of security is about perceived
security, even in high security situations (such as protection of head
of states or military installations). The reason encryption, for
example, needs 100% security is that you can set the computer to brute
force the attack. While breaking into a system or reverse-engineering
some code requires human reasoning, planning and action, which can be
foiled by reasonable barriers.
tom
Thomas Weidenfeller - 02 Nov 2006 14:32 GMT
> Not very relevant comment, is it?
Who are you to judge that in a discussion group?
> Yes, but this poster code might not be, that might be why he asks the
> question. You are generalising your respons without knowing the details
> of the application.
So? You apparently know more details of the particular application, so
you are very welcome to offer your own view. Let me check your response
to the OP. Ups, there isn't any.
> The point of such things are not necessarily to make 100% unbreakable
> solutions, as one would except from a technical perspective. But rather
> to create barriers to shut out 99% of the people trying, its basically a
> psychological game on human nature.
How do you know the OP wants to play that game? Ups, I forgot, you you
know all the details of the OPs application. Or wait, could it be that
you are generalizing without knowing the details?
> It would be nice if the community could started talking about security
> and similar things pragmatically instead of ideally. Yes, most solutions
> are ugly if they are not 100% perfect, but that's a technical problem.
Another generalization.
Interestingly you sound more and more like you are just looking for an
argument. I was explaining that there is no 100% solution, you now
complain that people don't talk about the fact that there is no 100%
solution. And you conveniently ignored the part of my posting where I
suggested obfuscation "to raise the bar", instead of a 100% solution.
Would you please make up your mind up about what you want to argue about?
> But in real life,
Yet another generalization.
/Thomas

Signature
The comp.lang.java.gui FAQ:
http://gd.tuwien.ac.at/faqs/faqs-hierarchy/comp/comp.lang.java.gui/
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq
Tom Forsmo - 02 Nov 2006 16:22 GMT
> Would you please make up your mind up about what you want to argue about?
I am not arguing, I was stating that that your reply could be more
helpful. In relation to this I added a comment about what I think is a
typical dead-end type discussion about security aspects in the
community. I am entitled to an opinion, just as you are.
tom
Chris Uppal - 02 Nov 2006 15:09 GMT
> It would be nice if the community could started talking about security
> and similar things pragmatically instead of ideally. Yes, most solutions
> are ugly if they are not 100% perfect, but that's a technical problem.
The pragmatism has to work in the other direction too. I.e consider the
balance between the cost in time, effort, and money of implementing security
features against the (best available estimate of) the probable cost (in lost
revenue, etc) of not providing them.
It didn't sound to me as though the OP was thinking in those terms. For
instance if 1200$US for JET is too expensive, then either he wasn't thinking
cost/benefit at all (which is what I presume) or had decided that the loss to
himself through decompilation was probably not going to exceed that figure.
But in the latter case, why worry at all ?
I think Thomas's point (if expressed in these terms) is that it is rare for the
cost-benefit equation to come out in favour of elaborate security measures.
Where considerations like the customers' disinclination to waste their own
time, the (potential) effectiveness of legal/contractual protection, and the
customers' need for continuing updates to the software are taken into account,
the final balance may often suggest not bothering at all, or maybe sticking in
a bit of obfuscation as a mild deterrent.
In the cases where the above considerations /do/ indicate that elaborate
security could be worthwhile, there is the problem that -- by the same
reasoning -- the customers' own motivation the break the security will be
probably be significantly greater. In that case it becomes very relevant that
none of the available security systems will give 100% protection (or near
100%). There is little point in a deterrent that does not actually deter...
-- chris