【问题标题】:keep only function names when obfuscation for proguard混淆proguard时只保留函数名
【发布时间】:2012-08-14 17:15:17
【问题描述】:

我使用 proguard 进行混淆处理。如何在混淆时只保留函数名称。类名必须混淆,但函数名。

如果我使用,

-keep class * {
     void somefunction();
}

它保留了一些函数的功能,但它不改变类名。

但是,我想更改类名,但要更改一些功能

【问题讨论】:

  • ...出于好奇,您为什么会想要这种行为?
  • 我有 jni 项目(android ndk)。我在 c++ 中使用了一些 java 函数。我可以得到对象的类,所以类名可以被混淆。我必须知道函数名,所以函数名不能混淆
  • 好的,所以类名可以被混淆,但是如果函数名保持一致,那有什么意义呢?无论如何,您的代码都不会那么模糊。

标签: java proguard


【解决方案1】:

您可以使用-keepclassmembers-keepclassmembernames

参照。 ProGuard 手册 > 使用 > Overview of Keep Options

【讨论】:

    【解决方案2】:

    使用 Proguard,您可以使用 -keepclassmembernames

    在 JNI 中,类名是本地环境中函数名的一部分。

    如果您重命名课程,您将获得java.lang.UnsatisfiedLinkError

    你必须同时保留类名和成员函数名。

    【讨论】:

      猜你喜欢
      • 2018-02-16
      • 1970-01-01
      • 2011-10-01
      • 2016-07-04
      • 2012-10-23
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多