首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YGuard混淆单个类、包和排除库

YGuard混淆单个类、包和排除库
EN

Stack Overflow用户
提问于 2013-05-06 10:30:37
回答 1查看 2.2K关注 0票数 0

我试图使用YGuard混淆程序的某些部分,其中包含加密方法和其他敏感信息(一旦我搞清楚了,我将以其他方式进一步保护这些信息)。

由于该程序相当复杂,并且包含了相当多的库,它显然提供了一系列警告,最后失败了:

代码语言:javascript
复制
  WARNING: Method initialize_ffi_type is native but com/sun/jna/Native is not kept/exposed.
  WARNING: Method getAPIChecksum is native but com/sun/jna/Native is not kept/exposed.
  [...]
  yGuard was unable to resolve a class (java.lang.ClassNotFoundException: com.sun.tools.javac.parser.Parser$Factory)

不管这意味着什么我想

  • 排除所有开放源码的库,这些库到目前为止没有什么可隐藏的。
  • 只混淆某些类或某些包的方法和变量,而不触及其余的方法和变量。

到目前为止,在YGuard中,我似乎必须指定我不想被混淆的类,但是我有太多的类,相反,我想做相反的事情:指定我想混淆的内容,然后继续增加我想要混淆的类和包的数量。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-01-17 10:16:02

通常情况下,混淆者会指定应该保留什么,而不是相反。

但是,可以使用externalclasses规则(链接)定义库类路径。在此路径中定义的类既不混淆也不收缩。获得的第二个错误(ClassNotFoundException)表明您没有指定项目所依赖的所有库。

为了现在混淆代码,您可以做的是:

  • 将您希望在一个jar中混淆的代码打包,并将其他所有内容定义为一个库。
  • 使用patternset在您的keep规则(链接)中定义所有要保留的,但要混淆的类除外。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16396807

复制
相关文章

相似问题

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