【问题标题】:How can i have a good obfuscatig with ProGuard?我怎样才能对 ProGuard 进行良好的混淆处理?
【发布时间】:2015-12-15 17:43:58
【问题描述】:

我正在使用 ProGuard 来混淆我的 Java 代码。
它正在工作,但是当我混淆时,ProGuard 唯一要做的就是将变量和类名更改为“a”、“b”、“c”等...
我可以有更多选择吗:
- 将所有代码放在一行中。
- 将所有类放在同一个文件中。
- 像这样修改我的代码结构(从简单条件变为硬条件):

private int maxStrLen(Noeud<E> x){
    return x == null ? 0 : Math.max(5, Math.max(6, maxStrLen(7)));
}

- 等等... ?

PS:我已经看过了:link.

【问题讨论】:

    标签: java proguard obfuscation options


    【解决方案1】:
    • 将所有代码放在一行中。

      这不会导致任何“更好”的混淆。许多阅读器和编辑器都实现了换行,因此这根本不会导致任何改进的混淆。要回答您的问题,否(见下文)

    • 将所有类放在同一个文件中。

      否,因为这与许多本地 Java 机制(例如包保护级别、类保护(最终等))失败并发生冲突。

    • 像这样修改我的代码结构(从简单条件变为硬条件)

    不,这是不可能的,因为编译器必须遵循确定性行为。在像 Java 这样具有副作用的语言中,您不能保证对 Math.rand 的随机调用绝对不会影响正在运行的程序的行为。不可能。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 2018-03-26
    • 2021-05-02
    相关资源
    最近更新 更多