首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netbeans混淆

Netbeans混淆
EN

Stack Overflow用户
提问于 2009-06-10 17:46:39
回答 2查看 7.2K关注 0票数 3

我对混淆非常陌生,也没有太多使用ant的经验。请给我提供一种用ProGuard (或任何其他开放源码混淆器)混淆常规Java应用程序的方法。目前我使用的是NetBeans 6.5.1,只有当我创建一个JAVA,而不是像我这样的Java应用程序时,才能看到模糊处理能力。我看过http://wiki.netbeans.org/DevFaqModuleObfuscation,但不明白他们在说什么。

感谢您的任何意见。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-10 20:55:28

您指出的常见问题是为了混淆NetBeans模块。这是一个相当复杂的用例,所以我假设它不是您感兴趣的常规应用程序。

简而言之:混淆过程改变了类、方法和字段的名称,使得反向工程应用程序变得更加困难。

这会导致一些问题:

  • JVM要求您的应用程序在公共类中有一个公共的静态空main( String args[] ),因此您必须告诉proguard不要更改此名称
  • 如果您使用任何类型的自检,则必须按照手册

中的说明保护相关名称不会被禁用。

此外,proguard还剥离了未使用的代码。如果您有任何使用但未直接引用的类,则还必须对它们执行-keep操作。

proguard文档包含了一个如何混淆简单应用程序的example。以下是解释的示例(使用一些不太容易混淆的名称):

代码语言:javascript
复制
-injars       application.jar        # obfuscate all the classes in the named jars
-outjars      obfuscated.jar         # save all the obfuscated classes to the named jar
-libraryjars  <java.home>/lib/rt.jar # these are all the libraries that the application uses
-printmapping obfuscation.map        # save a file linking the original names to the obfuscated ones
                                     # this helps understanding stack traces from the obfuscated application

# we need to keep our main class and the application entry point
-keep public class com.mycompany.Application {
    public static void main(java.lang.String[]);
}

除非您指定-dontshrink,否则proguard将从任何保留的代码中删除任何未保留或未引用的代码。因此,在上面的配置中,任何未被main方法(间接)引用的代码都将被删除。

Proguard包含一个可用于与NetBeans工作流集成的Ant任务。我建议先在没有Ant的情况下手动进行实验,因为这会消除这个过程中的一个复杂因素。使用NetBeans构建您的应用程序jar,然后尝试使用上面的配置进行模糊处理(如有必要,请进行补充)。确保测试模糊的应用程序,因为无数的事情可能会出错。一旦拥有了有效的proguard配置,就可以尝试将Ant任务添加到构建文件中,以在NetBeans中自动执行混淆过程。

票数 9
EN

Stack Overflow用户

发布于 2009-09-23 12:10:58

-dontskipnonpubliclibraryclasses之外的另一种解决方案是使用与编译JAR文件中的代码相同的JDK来运行proguard。

例如,而不是java -jar ../proguard3.8/lib/proguard.jar

使用/usr/local/jdk1.5.0/bin/java -jar ../proguard3.8/lib/proguard.jar

雅各布

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/977144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档