问题标签 [proguard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
17699 浏览

java - Java 混淆 - ProGuard/yGuard/其他?

这与这些最近的问题类似:

用于减少大小的最佳 Java 混淆应用程序 创建不可逆向工程的 Java 程序

然而,一个人最终推荐了 yGuard 和另一个 ProGuard,但两者都没有提及。我想知道我们是否可以对每一个进行比较,并从围栏两边听取人们的经验。在 ProGuard 网站上查看此比较图表,它明显倾向于 ProGuard。但是每个人的真实世界经验如何——哪一个产生的输出更小呢?哪个更难反编译?每个版本都支持哪些 Java 版本?

我个人对 J2ME 的观点特别感兴趣,但请不要将讨论局限于此。

0 投票
3 回答
3276 浏览

obfuscation - 如何使用 ProGuard 混淆 OSGi 包?

我目前正在尝试使用 ProGuard 混淆我的 Eclipse RCP 应用程序。问题在于它混淆了包名(My.Package.Class 类变成了类似 abc),但将包名保留在 MANIFEST.MF 的 Export-Package 部分。

这导致我的应用程序(实际上是一组 OSGi 捆绑包)无法运行,因为无法解析 MANIFEST.MFs 的 Export-Package 部分中指定的包名称。

ProGuard 混淆基于 OSGi 的 RCP 应用程序是否有人成功?基本上,我看到了两个选择:要么完全关闭包名称混淆,要么混淆 MANIFEST.MF 的 Export-Package 部分,但我找不到实现其中任何一个的方法。Proguard 似乎只混淆了 MANIFEST.MF 中的 Bundle-Activator 类名,跳过了所有其他部分。提前致谢!

0 投票
1 回答
11214 浏览

java - Maven、Proguard 和组装问题

我正在尝试让 Maven 与 ProGuard 一起工作。

我想要实现的是以下内容:

  • 在我的源文件上运行 ProGuard 并生成混淆类

  • 创建一个引用主类的清单文件,以便我可以将其作为 jar 执行

  • 解压所有相关的库 jar,并创建一个包含所有这些的巨大 jar。此文件应仅联系 .class 和 .xml 文件。

  • 将它们组装成包含各种 README.txt 文件等的 .zip 和 tar.gz 文件。

到目前为止,我有这样的事情:

但我没有快乐。任何人都可以给我任何模糊的指示吗?

在此先感谢,马特

0 投票
3 回答
2160 浏览

java - 难以混淆

我正在使用 Antenna 来构建、打包和混淆一个 j2me 应用程序。建筑和包装工作正常。

该项目使用除了某些接口之外已经被混淆的第 3 方 jar。

尝试混淆时,我遇到了几个错误,例如:

i 类和 fooPackage.fooClass 来自我提到的这个 3rd 方 jar。

更新

这个第 3 方库使用 j2me-xmlrpc.jar。如果我不将所有内容打包在一起,那么我将无法混淆第 3 方接口和 j2me-xmlrpc.jar。(而且我不能以这种方式运行应用程序,不知道为什么)

如果我只打包 j2me-xmlrpc.jar 和我的项目类,我会在混淆时收到此错误

更新 2:

我知道这种混淆是可能的,因为在 Netbeans 中我可以使用 Proguard 进行混淆。

由于 Netbeans 内部使用 ANT 进行构建,我尝试将生成的 build.xml 复制到我自己的 build.xml。

对于混淆,Netbeans 使用可在 Netbeans 外部使用的库 org-netbeans-modules-mobility-antext.jar。我将此库导入我的项目并毫无问题地使用它。

但是我得到了与使用天线相同的错误。

Netbeans 中的混淆会产生很多警告,但它仍然会生成混淆的 jar。

我错过了什么?

0 投票
2 回答
3546 浏览

java - 使用 throws 子句的混淆方法

我正在使用 ProGuard 来混淆我的代码。我的项目由几个模块组成,每个模块都独立混淆。

一个库包括一个接口;

另一个库提供了一个实现

首先构建具有接口的库,然后针对混淆版本构建第二个库。不幸的是,@Override由于接口没有 throws 子句,因此编译失败。

我有 proguard 保留接口及其所有成员,但我不知道如何保留 throws 子句。

0 投票
2 回答
9269 浏览

java - 使用 ProGuard 混淆时暴露内部类

我正在使用 Ant 任务用 ProGuard 混淆一个库。

当它们具有特定注释(@ApiAll)时,我会保留特定的类名及其方法名,并且我要求保留 InnerClasses 属性:

如果我检查映射输出文件,我可以看到具有注释的内部类及其成员保持其名称未混淆。但是,当我查看生成的 jar 文件时,我找不到该类。

我错过了什么吗?为什么映射告诉我它没有保留这个类?

0 投票
2 回答
2941 浏览

java - Proguard 混淆 Fat jar

我的应用程序 jar 包含来自 swing-layout.jar 的类,其中包含用于 java 1.5 的免费布局管理器。在混淆过程中,我收到很多警告,例如

我希望 proguard 不理会 org.jdesktop 类,并摆脱我尝试过的警告

但它没有用?

0 投票
3 回答
2168 浏览

java - java proguard:优化后库不起作用

我正在用proguard优化一个jar,但优化后它崩溃了。这是我的proguard任务:

只要我输入 -dontoptimize 选项,它就可以工作。

根据异常堆栈,它在使用空指针访问类的静态公共成员时崩溃。这是代码:

谢谢!

0 投票
1 回答
2275 浏览

java - proguard 尝试混淆使用 Spring 的代码时遇到问题

我的项目使用 Spring 进行 IoC。混淆后,应用程序上下文无法找到 bean,因为它的类名已更改。我尝试使用 -adaptresourcefilecontents 选项来根据类名更新 context.xml 文件,但它不起作用:文件未更改。有任何想法吗?

0 投票
9 回答
57596 浏览

java - 如何快速混淆 Java 代码?

如何快速混淆代码。我有一个非常小的Java 应用程序,我想将经过混淆的代码交付给我的客户。我听说过很多关于ProGuard混淆代码并下载了它,但不知道如何混淆我的“abc.jar”文件。

我查看了它的网站,但它包含很多可供阅读的材料。我不需要重度混淆。我只需要一个混淆器,它只是将变量、方法和类的名称更改为一些不可读的名称。我知道 ProGuard 还为所有这些提供了大量其他功能。

Q1。所以谁能告诉我一些简单的混淆器或一些使用proguard的简单步骤,这样我就可以输入“abc.jar”并输出“obfuscate_abc.jar”或类似的简单内容。

Q2。还有一件事,因为我的 Java 程序使用外部库,所以我是否也需要混淆这些库?

Q3。是否有任何 Eclipse 或 NetBeans 插件可用于这种混淆?

我还听说我们应该保留映射表文件,以便将来我们可以通过在混淆时创建的映射表的帮助下首先去混淆来调试或编辑该混淆代码。

Q4。那么,还有一个问题是为什么我们需要随身携带该映射表?我们可以简单地保留一份未混淆应用程序的副本,以便对其进行更改(如果将来需要)。有任何理由保留我们的映射表文件吗?