1

Possible Duplicate:
Best Java obfuscator ?

For my example I know that eclipse offers a decompiling plugin. And I am sure there are a few other ways out there to go about decompiling programs.

I have also heard that decompiling is not 100% accurate, and the results can vary greatly(even when decoiling same program in same way). The accuracy will depend on how the code was constructed etc.

What techniques would one use to make a java (or any) program more difficult to decompile?

Community
  • 1
  • 1
sealz
  • 5,348
  • 5
  • 40
  • 70
  • maybe but I am looking for hard coding techniques too(not just java) (yes I know it could get confusing) – sealz Jul 08 '11 at 18:47
  • There are obfuscators, I've heard rumors they have impact on application performance. But whatever you do, at the end your code can be reverse engineered. The question is what you want to achieve? Protect yourself against some script kiddies or highly skilled software engineers :-) – home Jul 08 '11 at 18:50
  • highly skilled software enginners duh! :) – sealz Jul 08 '11 at 18:52
  • Obfuscation can only slow someone down a little... http://stackoverflow.com/questions/6481668/protecting-executable-from-reverse-engineering – trutheality Jul 08 '11 at 18:57

4 Answers4

1

You can't make the program effectively more difficult to decompile. You can make it harder to understand once it's decompiled, but the decompilation process is deterministic.

Paul Sonier
  • 38,903
  • 3
  • 77
  • 117
1

The number one technique is to use an obfuscator. Lots of people like ProGuard because it integrates nicely with Eclipse and is free. Also see Obfuscate4e, which works with other obfuscators as well as with ProGuard.

Ted Hopp
  • 232,168
  • 48
  • 399
  • 521
0

First result from google: http://proguard.sourceforge.net/

sshannin
  • 2,767
  • 1
  • 22
  • 25
0

I've also used yGuard and it seemed to work nicely. You can integrate it into your Ant scripts fairly easily also.

aardvarkk
  • 14,955
  • 7
  • 67
  • 96