我正在编写一个minecraft mod,当我在forge 1.8.9中运行它时,我得到了noSuchMethodError:net。我的世界。客户getMinecraft()。FontRenderObj
。然而,当我运行另一个mod时,这个mod可以工作。
我的mod的反编译类文件如下所示
this.renderer = Minecraft.getMinecraft().fontRendererObj;
而另一个看起来像
this.renderer = Minecraft.func_71410_x().field_71466_p;
无论我如何构建我的mod,我的类文件永远不会像这样结束。如何让gradle混淆代码?
一种选择是使用Gradle来加载ProGuard,并使用它模糊您的JAR。
然后需要这样的依赖项:
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath 'net.sf.proguard:proguard-gradle:6.1.1'
}
}
您还需要定义一个任务,类似于:
task useProGuard (type: proguard.gradle.ProGuardTask) {
configuration 'proguardcfg.pro'
injars jar.archivePath
outjars "${myDir}/MyJar.jar"
}
如任务中所示,创建一个proguard配置文件,在其中定义proguard应该做什么以及应该处理哪些类的规则。
此文件中的条目可以如下所示:
#-dontobfuscate
-dontshrink
-dontoptimize
-keep class com.jni.** { *; }
...
其中注释掉的参数是防止混淆的命令,接下来的两个命令告诉ProGuard不要缩小JAR或使用它们自己的优化,最后一个条目是包中称为com.jni
的类的规则,因为更改本机
函数的函数签名是危险的。
阅读更多关于ProGuard:
https://www.guardsquare.com/en/products/proguard/manual/examples
此外,我相信标准的Android构建管道也默认使用ProGuard。
本文向大家介绍Spring Boot使用Allatori代码混淆的方法,包括了Spring Boot使用Allatori代码混淆的方法的使用技巧和注意事项,需要的朋友参考一下 Allatori混淆技术介绍 Allatori是一个Java 混淆器,它属于第二代混淆器,因此它能够全方位地保护你的知识产权。 Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。
问题内容: 我在AndroidStudio 1.2.1.1和Gradle 1.2.3中使用了ProGuard。 My Gradle的发布版本的配置如下: 我希望混淆类的私有字段。 到目前为止,这是我的proguard配置文件(经过多次尝试): 但是在从AndroidGuard 反编译后,我最终得到了: 我知道这种混淆的使用是有限的,但是我想由ProGuard重命名。怎么做? 这是refcard。
我正在寻找一种使用npm脚本来运行tsc的方法——看 tsc—执行watch,但从不调用nodemon,反之亦然。
问题内容: 我正在寻找如何隐藏我的Python源代码。 如何编码此示例,以使它不易阅读?有人告诉我使用base64,但不知道如何使用。 问题答案: 这只是一个有限的第一层混淆解决方案,但是它是内置的:Python有一个编译器来对字节码进行编码: 生成一个包含字节码的文件,并删除其中的文档字符串,等等。您可以使用.py扩展名重命名该文件,并且可以像程序一样运行,但不包含源代码。 PS:您获得的“有限
问题内容: 我对此代码有两个问题 1)函数f在Override po的引用上如何可见; 2)为什么输出“ private f()” 问题答案: 该方法在班级内部,因此当然可以看到班级的私有成员。 您 没有在类中重写方法,没有多态。变量的类型为,因此它将采用class中的方法。 注意class 中的方法在class中根本不可见。该方法在课堂上是一种不同的方法,不具有任何与该方法在超类。
我应该为依赖于的库的集成测试做出贡献,底层实现是用编写的。测试更倾向于流经一些属性的事件流。 以下存根是实际实现的一部分 现在,我要寻找的代码可能是 注意,我知道搜索。测试中的时间戳可以更新,但这需要在每个!! 但是有没有更好、更可靠的方法在规格2和/或scala中做到这一点? 编辑:我必须指出,我并不期待更改实现,以便用另一个类覆盖/包装。