使用ProGuard的值得的麻烦?麻烦、ProGuard

2023-09-12 09:48:15 作者:xx最喜欢先生了

这是我所看到和阅读,如果有人真的想逆向工程软件或反编译,ProGuard的是不会阻止他们。但它至少有一个适度的威慑力?我不知道它是否值得后来翻译我的堆栈跟踪的麻烦。

From what I've seen and read, if someone really wants to reverse-engineer your software or decompile it, ProGuard is not going to stop them. But is it at least a modest deterrent? I'm not sure if it's worth the hassle of translating my stack traces later on.

推荐答案

我会建议ProGuard的。即使没有混淆(其可以显著缩短在常量池中使用的名称),它可以用于除去库等的死code的(未使用的方法)(它也可以被用来方便地合并一切在一起)。

I would recommend ProGuard. Even without obfuscation (which can significantly shorten the names used in the constant pool) it can remove "dead code" (unused methods) of used libraries, etc. (It can also be used to conveniently merge everything together).

这需要摆弄得到正确的,尤指一点点。如果有动态加载的类 - 但很推荐。从节省空间的实际好处,但是,要看什么可以消除一般无二了更多的外部库。

It takes a little bit of fiddling to "get correct", esp. if there is dynamically loaded classes -- but very recommended. The actual benefit from space-saving, however, "depends" on what can be eliminated and generally goes up with more external libraries.

现在,为迷惑 - 它确实不亚于任何混淆:使反编译code到事情的有意义的名称的不可能

Now, for obfuscation -- it does as much as any obfuscator: Makes "decompiling" code into things with meaningful names impossible.

模糊处理不会保存您的超级秘密算法或隐藏你的私人密钥,虽然:如果JVM(或Dalvik的转换后),必须了解它的,那么可以反编译,谁的真的想得到访问即可。您的code甚至可以解除字节code-形式,只需通过使用。反射(试想一下零文档可怕API):任何人谁的真正的都想进入即可。但也许混淆将使这一任务不可行的成本/支出:这取决于

Obfuscation won't save your super-secret-algorithm or hide your private keys, though: if the JVM (or Dalvik after a transformation) must understand it, then so can a decompiler and anyone who really wants to get access can. Your code could even be lifted in bytecode-form and used simply via. reflection (just imagine a terrible API with zero documentation): anyone who really wants to get access can. But perhaps obfuscation will make this task unfeasible for the cost/payout: "It depends".

不要想翻译栈的痕迹?简单:不使用它进行调试或不启用(而不是从用户获取的痕迹非常有用)混淆的(其他的好处仍然适用); - )

Don't want to translate stack-traces? Simple: don't use it for debugging (not as useful for getting traces from users) or don't enable obfuscation (other benefits still apply) ;-)

快乐编码。