如题如题如题如题
本帖最后由 再见阳光 于 2022-5-2 12:01 编辑
使用混淆工具
使用混淆工具
用什么都行,要是对面真想看,拦不住。

或者用混淆工具把代码变得难以阅读。
不过这都要看想要看你的代码的人的技术和决心了,真要搞你,很难防住。
这个是比较难的,哪怕加大混淆程度,但在面对一些拥有一定反编译经验的开发者时,对方也可以靠着蛛丝马迹来阅读你的代码,如果你有一定的水平,可以试着搞云端代码,本人就已经实现云端代码,搭配混淆能实现比较好的效果,虽然防御力也并不强大,只不过插件本体不再包含重要代码,缺点是会导致插件加载比较慢,落后2-3秒,并且热重载可能会出现问题,另外就是编写一个API插件,用于加载加密插件,利用Java的加密算法,把jar文件加密,使之无法用各种反编译器打开,包括压缩包,然后利用云端传给API插件密钥,让API去解开密钥,再利用数据量写入这个插件,然而,这个需要改动一下Bukkit的源代码,具体就不方便透漏了
allatori

不过咱们这小破插件混啥啊 开源得了

不过咱们这小破插件混啥啊 开源得了
(1)直接混淆,比如你的插件里都是a.a1.b.b1这种语句
(2)使用阅读性本来就不高的语言开发,例如kotlin或scala这类jvm语言
(3)此外,在mcbbs发布原创插件,插件区版规3-10限制了混淆,请注意不要踩雷
(2)使用阅读性本来就不高的语言开发,例如kotlin或scala这类jvm语言
(3)此外,在mcbbs发布原创插件,插件区版规3-10限制了混淆,请注意不要踩雷
本帖最后由 teddyxlandlee 于 2022-5-18 11:01 编辑
这波有效防止了撞包
所以你的第一条是要不得的,但可以像这样:com.example.plugin.a.b.e(var0, var3.d())
看来不能搞JNI混淆了,嘻嘻嘻
对了,allatori的字符串混淆也寄了
所以,乖乖用Kotlin/Scala+Proguard吧,注意不要用kotlin-reflect,八成会寄
桃源村服主 发表于 2022-5-2 20:48
(1)直接混淆,比如你的插件里都是a.a1.b.b1这种语句
(2)使用阅读性本来就不高的语言开发,例如kotlin或 ...
此外不允许对包名根目录以及插件主类名字进行混淆
这波有效防止了撞包
所以你的第一条是要不得的,但可以像这样:com.example.plugin.a.b.e(var0, var3.d())
未提到的内容不允许混淆(如字符串, 类内容, 方法内容)
对了,allatori的字符串混淆也寄了
所以,乖乖用Kotlin/Scala+Proguard吧,注意不要用kotlin-reflect,八成会寄
简单点就搞点乱码文件,让他认不出来qwq
现在mcbbs已经不允许发混淆的插件了