Tag: proguard

Proguard说它找不到任何课程

我正在使用带有spring mvc应用程序和maven的proguard。 我的pom.xml的构建部分如下所示: myapp com.pyx4me proguard-maven-plugin package proguard true <!—-> <!—keep public class–> <!—-> ${project.build.finalName} ${project.build.finalName} com.myapp.* 我也尝试过: ${project.build.finalName}.war 当我跑: mvn clean install 构建失败消息: [proguard] Reading program war [/Users/me/dev/git/myproject/myapp/target/myapp.war] (filtered) [proguard] Error: The input doesn’t contain any classes. Did you specify the proper ‘-injars’ options? ERROR] Failed to execute goal com.pyx4me:proguard-maven-plugin:2.0.4:proguard (default) on project myapp: […]

使用ProGuard进行模糊处理时暴露内部类

我正在使用Ant任务对ProGuard库进行模糊处理。 当他们有一个特定的注释(@ApiAll)并且我要求保留InnerClasses属性时,我会保留特定的类名和它们的方法名: 如果我检查映射输出文件,我可以看到我的内部类具有注释及其成员保持其名称不被混淆。 但是,当我查看生成的jar文件时,我无法找到该类。 我错过了什么吗? 为什么映射告诉我它不保留这个类?

Proguard vs Annotations

我有一个使用ActiveAndroid的应用程序,它是一个依赖于注释的数据库ORM库。 @Table(name=”test”) public class DatabaseItem extends ActiveRecordBase { public DatabaseItem(Context context) { super(context); // TODO Auto-generated constructor stub } @Column(name=”counter”) public int counter; } 我如何让Proguard与之合作得很好? 目前,我在使用Proguard时遇到ActiveAndroid没有找到列名的错误。 我想它以某种方式破坏了注释。 我的相关Proguard配置: #ActiveAndroid -keep public class com.activeandroid.** -keep public class * extends com.activeandroid.ActiveRecordBase -keepattributes Column -keepattributes Table

如何在使用proguard-maven-plugin后组装项目

我正在尝试在打包我的应用程序时添加一个混淆步骤。 我认为我必须在编译器插件和程序集之间插入Proguard插件(程序集只将我的所有应用程序和依赖项放入一个jar中)。 myApp org.apache.maven.plugins maven-compiler-plugin 3.2 1.7 1.7 com.github.wvengen proguard-maven-plugin 2.0.11 obfuscation-packaging package proguard 5.2 true true false true ${project.build.finalName}.jar ${project.build.finalName}.jar true ${java.home}/lib/rt.jar … net.sf.proguard proguard-base 5.2 maven-assembly-plugin 2.4 create-executable-jar package single assembly.xml myApp.Main 编译工作正常,混淆也是如此,但是程序集似乎是用正常的jar而不是混淆的jar。 如果需要,这是我的assembly.xml: with-dep jar false true runtime false ${project.build.outputDirectory} 最后,myApp.jar被混淆了,但myApp-with-dep.jar不是……我也确切地说我不太确定我的proguard插件的配置。 如果你看到一些奇怪的东西,说出来。 谢谢你的时间。

Proguard不会保留class级成员的枚举

我正在开发一个作为java jar分发的库,我正在运行proguard,以便只暴露所需的接口。 我有一个配置类,包含一堆成员变量和一些枚举定义。 我的proguard脚本保留了成员变量,但枚举定义正在被混淆。 我已经尝试了所有我能想到的强迫proguard保留这些内部定义和公共枚举,但我不能让它工作。 现在我正在使用: -keep public class com.stuff.MyConfigObject { public *; } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } 如果我尝试: -keep public enum com.stuff.MyConfigObject.MyEnum 我得到一个模棱两可的错误:“注意:配置引用未知类’com.stuff.MyConfigObject.MyEnum’” 谢谢您的帮助!

在OS X上运行ProGuard:Apple相当于rt.jar在哪里?

我正在运行ProGuard来缩小我的jar文件。 它需要的参数之一是系统的运行时jar。 这是在Sun发行版上的$JAVA_HOME/lib/rt.jar ,但不是Apple的Mac OS X(在我的情况下是v10.6(Snow Leopard))。 OS X有rt.jar吗?

Maven,Proguard和assembly问题

我正在努力让Maven与ProGuard合作。 我想要实现的目标如下: 在我的源文件上运行ProGuard并生成混淆的类 创建一个引用主类的清单文件,以便我可以将其作为jar执行 解压所有相关的库jar并创建一个包含它们的巨大jar。 此文件只应与.class和.xml文件联系。 将它们组装成包含各种README.txt文件的.zip和tar.gz文件,依此类推。 到目前为止,我有这样的事情: org.apache.maven.plugins maven-jar-plugin 2.2 com.class.path.MainClass **/*.class **/*.xml com.pyx4me proguard-maven-plugin -allowaccessmodification true classes ${project.build.finalName}.jar ${project.build.directory} src/main/assembly/proguard.conf lib/rt.jar process-classes proguard maven-assembly-plugin assembly package assembly src/main/assembly/bin.xml 但我没有快乐。 任何人都可以给我任何模糊的指示吗? 先谢谢你,马特

使用属性打开/关闭Proguard

在我的project.properties文件中有一个属性proguard.config,当我运行ant时,它将运行proguard。 以下所有内容都会导致proguard运行 proguard.config proguard.config= proguard.config=proguard.cfg 在属性文件中有没有办法打开/关闭proguard? 否则,我将需要编写一个脚本来添加/删除或重命名proguard.config属性来控制它。 我宁愿得到/设置属性。 我想要最好的解决方案。 现在我正在编写replaceregexpr,将proguard.config重命名为其他关闭的东西。 寻找更好的解决方案,并想知道别人如何控制这个?

ProGuard打破了JavaFX应用程序

我正在尝试模糊我的JavaFX应用程序,但它失败了。 生成的结果不起作用,我不明白为什么。 生成的jar只是失败,因为fxml文件不能再加载所有导入(ClassNotFoundException)。 部署工作流程: 构建可运行的jar(在IntelliJ knwon中作为工件) 使用ProGuard混淆该jar 修复ProGuard无法完成的jar中的一些问题 1)最小的示例应用程序 示例应用程序’GuardTest’是一个IntelliJ项目,由3个类组成。 sample.Main:包含应用程序入口点并加载GUI fxml文件’sample.fxml’ sample.Controller:’sample.fxml’的控制器类 controls.CustomControl:一个从HBoxinheritance的简单javafx控件。 这在’sample.fxml’中使用 ‘sample.fxml’的内容: 2)混淆 现在我使用ProGuard生成从上面的项目生成的jar文件。 我使用以下设置: -target 8 -injars ./out/artifacts/JavaFXApp/JavaFXApp.jar -outjars ./out/obfuscated/Obfuscated.jar -ignorewarnings -printmapping ./out/obfuscated/proguard.map -dontusemixedcaseclassnames -dontshrink -dontoptimize -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers #-flattenpackagehierarchy -repackageclasses ‘p’ -allowaccessmodification -libraryjars “/lib/rt.jar” -libraryjars “/lib/javaws.jar” -libraryjars “/lib/ext/jfxrt.jar” -adaptresourcefilecontents **.fxml,**.properties,META-INF/MANIFEST.MF,images/*.jar,publicCerts.store,production.version -keepattributes javafx.fxml.FXML,Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod -keepclassmembers class * { @javafx.fxml.FXML *; } -keepclassmembernames […]

Java混淆 – ProGuard / yGuard / other?

这与最近的这些问题类似: 用于减小大小的最佳Java混淆应用程序 创建非反向可执行的Java程序 但是,最终会推荐yGuard和另一个ProGuard,但两者都没有提及。 我想知道我们是否可以对每一个进行比较,并听取围墙双方的人们经历。 在ProGuard网站上查看这个比较图表 ,它明显倾向于ProGuard。 但是每个人的实际经验呢?哪一个会产生较小的输出? 哪一个更难反编译? 每个支持哪些Java版本? 就个人而言,我对J2ME的观点特别感兴趣,但请不要将讨论局限于此。