Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Some of the more advanced Java bytecode obfuscators do much more than just class name mangling. <a href="http://www.zelix.com/" rel="noreferrer">Zelix KlassMaster</a>, for example, can also scramble your code flow in a way that makes it really hard to follow and works as an excellent code optimizer...</p> <p>Also many of the obfuscators are also able to scramble your string constants and remove unused code.</p> <p>Another possible solution (not necessarily excluding the obfuscation) is to use <a href="http://www.componio.com/products/jinstaller/jinstaller_secure_edition/jarcryp.html" rel="noreferrer">encrypted JAR files</a> and a custom classloader that does the decryption (preferably using native runtime library).</p> <p>Third (and possibly offering the strongest protection) is to use native ahead of time compilers like <a href="http://en.wikipedia.org/wiki/GNU_Compiler_Collection" rel="noreferrer">GCC</a> or <a href="http://www.excelsior-usa.com/jet.html" rel="noreferrer">Excelsior JET</a>, for example, that compile your Java code directly to a platform specific native binary.</p> <p>In any case You've got to remember that as the saying goes in Estonian "Locks are for animals". Meaning that every bit of code is available (loaded into memory) during the runtime and given enough skill, determination and motivation, people can and will decompile, unscramble and hack your code... Your job is simply to make the process as uncomfortable as you can and still keep the thing working...</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload