代码之家  ›  专栏  ›  技术社区  ›  Prix Winteroo

是否包含外部文件以接收库重命名?

  •  0
  • Prix Winteroo  · 技术社区  · 15 年前

    使用yguard,我正在混淆一个项目,我想知道是否有可能将文件包括在建筑物外,以便只接收库和函数新的命名模式?

    例如,我混淆了com.my class.MyInternalClasses类,在我的项目外部,我有mysql.java文件,在mysql.java内部,我使用了MyInternetClasses中的一些类,但是自从混淆之后,名称就改成了其他的名称,比如com.A.B

    所以它要做的是读取那个java文件,并替换上面所有模糊名称的名称。

    或者什么是最好的方法?

    1 回复  |  直到 15 年前
        1
  •  0
  •   martin clayton egrunin    15 年前

    通常,方法是混淆代码的主要部分,但不混淆公共接口-可以使用 keep 元素。这样代码的用户就不必知道这种混淆。如果您发现您的公共接口包含您希望混淆的代码,那么一个小的重新设计(使用一点委托,或者创建一个最小的公共外观)应该使您能够将公共与“秘密”分开。

    另一种方法是使用 map 元素以手动指定要在外部使用的接口的重命名,然后可以更改调用代码以使用这些名称。yGUARD应用的重命名被记录下来,因此您可以从中提取名称-但这开始变得混乱。