当前位置: 首页 > 知识库问答 >
问题:

如何使ProGuard在jar文件中混淆jar

陈畅
2023-03-14

我有一个可运行的java jar文件,我们称之为master Program.jar。在这个master Program.jar中,如果我使用7Zip或WinRAR提取它,还有其他罐,让我们称之为lib1.jar,lib2.jar

ProGuard设法混淆了主罐子,但是当我看的时候——里面的lib罐子不是。正因为如此,程序(主rogram.jar)在某一点中断。我也已经在我的条件设置超载积极选项。

我通过蚂蚁build.xml.调用proguard.jar,这是我的配置文件config.proguard

-injars 'masterProgram.jar'

-target 1.7
-dontshrink

-dontoptimize
-allowaccessmodification
-printmapping dataprintmap.txt
-overloadaggressively
-useuniqueclassmembernames
-repackageclasses ''
-keepattributes Exceptions,Innerclasses,Signature,Deprecated,*Annotation*,Synthetic
-renamesourcefileattribute SourceFile
-dontnote
-printseeds dataseed.txt
-dontskipnonpubliclibraryclasses

共有1个答案

公羊俭
2023-03-14

罐子里的罐子并不是罐子应该工作的方式。您需要重新安排事情,使ProGuard能够处理事情。ProGuard无法处理罐子中的罐子,因为这不是罐子的用途。

 类似资料:
  • 我已经设法对Scala代码进行了模糊处理,但我不知道如何对由步骤构建的jar文件运行模糊处理。或者至少在步骤中如何构建fat jar。我发现proguard有一个参数,但我不知道如何将它应用于。谁能告诉我怎么才能做到这一点。 UPD,实际上,Proguard构建的JAR只包含模糊的类,而不包含Proguard忽略的类。

  • 我已经成功地用Maven配置了Proguard来混淆jar及其依赖jar。我已经设法让两个混淆使用相同的映射文件,这样一个jar就可以调用另一个jar的方法。我面临的问题是,Proguard没有在模糊的jar中保留唯一的名称;两个模糊的jar都包含一个名为 由于有两个名为F.B.class的类(每个jar中有一个),因此优先级被赋予了调用jar中的类,这就造成了问题。 也被应用,但它显然只将此应用

  • 我有一个罐子用另一个罐子做库。我希望它们都被混淆。 引用ProGuard文档: ProGuard要求指定输入jar的库jar(或war、ears、zips或目录)。这些本质上是编译代码所需的库。ProGuard使用它们来重建正确处理所必需的类依赖关系。库罐子本身始终保持不变。您仍然应该将它们放在最终应用程序的类路径中。

  • 我对混淆有问题。为了获得更好的想象力: JAVA代码 本机代码 在我想发布一个混淆版本之前,一切都很好。这个类中的Java类(例如)和方法的名称被proGuard重命名为“a”和“a()”(这可能并不总是相同的),但在本机代码中,方法和类的原始名称保持不变,因为它被硬编码为字符串,如下所示: ...有没有办法动态设置方法名?

  • 我正在努力解决JavaFX应用程序的模糊问题。以本项目为基础: Proguard配置文件:-dontoptimized-dontshrink 有人有JavaFX模糊处理的经验吗?

  • 我有一个项目,下面给出了文件。当我发出命令时,我希望Maven生成一个JAR,其中包含 所有依赖项和 我的代码的模糊版本。 为了拥有一个包含所有依赖项和模糊代码的JAR文件,我可以做些什么呢? 更新1(17.01.2016 19:54 MSK):更改了ProGuard配置,如下所示,但仍然生成一个带有未混淆类文件的JAR。 更新2(17.01.2016 20:29 MSK):失败。最后的消息可以在