JNIC

A powerful Java to C Bytecode translator

Pricing

Thwarts reverse engineering

The classes generated by JNIC cannot be instrumented, modified, profiled or debugged by Java tools. Native code significantly deters analysis attempts.

Immune to Java Decompilation

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.

# 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 Interface. At the end of this process, no trace of the original method remains in the .class file that contained it.

Before

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

After

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 server, or email [email protected] for a free trial.

# Samples

Here are a few examples of JNIC protected applications in their original forms, after being protected by JNIC, and after being protected by a combination of a Java obfuscator and JNIC.

Name Original JNIC ZKM+JNIC Info
HelloWorld.jar Download Download Download Just a single method that prints 'Hello, World!'.
ArithmeticGame.jar Download Download Download Command line "game" that uses a variety of Java language features, including streams, lambda expressions and try-with-resources.