A powerful Java native obfuscator


Thwarts reverse engineering

JNIC completely protects your source code from all Java reverse engineering tools, including decompilers, bytecode editors and deobfuscators.

Interoperable with existing obfuscators

For even more protection, JNIC can be applied over the output of another obfuscator, resulting in incredibly complex native code.

Not just a translator

JNIC applies protections at the level of native code, including string encryption, reference obfuscation, and control flow flattening.

What is JNIC?

JNIC translates compiled (and optionally obfuscated) Java methods to the C programming language. After the generated files are compiled, the resulting binary is relinked to the original program through the Java Native Interfaceopen in new window. At the end of this process, no trace of the original method remains in the .class file that contained it.


public class App {
	public static void main(String args[]) {
		System.out.println("Hello, world!");


public class App {
	public static native void main(String args[]);

The bytecode of the method is completely hidden from Java reverse engineering tools.

You don't need any prior knowledge of the Java Native Interface or C code to use JNIC. JNIC supports all Java language features, and can be used on your existing codebase.

See the docs and FAQ for more information, join our discord serveropen in new window, or email [email protected].


Here are a few examples of JNIC protected applications before and after being protected by JNIC.

HelloWorld.jarDownloadDownloadJust a single method that prints 'Hello, World!'.
SnakeGame.jarDownloadDownloadA Snake Game from GitHubopen in new window