小编obf*_*cer的帖子

我可以使用本机编译作为Java混淆

我正在为Java应用程序编写一个插件.我可以对插件进行模糊处理,但它仍然可以很容易地进行逆向工程.

我相信如果我可以将这个插件编译成一个共享库,它大量使用JNI与主应用程序通信,那么逆向工程就会困难得多.我愿意为JNI牺牲一些性能,我编写的应用程序确实支持共享库加载.唯一的问题是我不知道有一个工具可以完成这项工作:gcj似乎依赖于它自己的运行时和IKVM.NET - 在.NET上

确切地说:


public class PluginImpl implements Plugin {
    @Override
    public void startPlugin(PluginContext ctx) {
       ctx.helloWorld();
    }  
}
Run Code Online (Sandbox Code Playgroud)

应转换为


public class PluginImpl implements Plugin {
    @Override
    public native void startPlugin(PluginContext ctx);
}
Run Code Online (Sandbox Code Playgroud)

并且我的startPlugin方法的主体被编译成一个共享库.

(嗯,是的,我知道,我本可以在C中首先编写这个插件)

java java-native-interface native

5
推荐指数
1
解决办法
1250
查看次数

标签 统计

java ×1

java-native-interface ×1

native ×1