混淆应用程序是否存在任何潜在问题? [英] are there any potential issues with obfuscating an application?

查看:51
本文介绍了混淆应用程序是否存在任何潜在问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个 spring mvc Web 应用程序.我打算使用休眠.

I am building a spring mvc web application. I plan on using hibernate.

我在混淆等方面没有太多经验

I don't have much experience with obfuscating etc.

混淆应用程序的潜在缺点是什么?

What are the potential downsides to obfuscating an application?

我了解调试应用程序可能存在问题,恢复丢失的源代码也是一个问题.

I understand that there might be issues with debugging the app, and recovering lost source code is also an issue.

应用程序的实际运行是否存在任何已知问题?可以引入错误吗?

Are there any known issues with the actually running of the application? Can bugs be introduced?

由于这是一个我正在寻找一般指导的领域,请随时提出我应该注意的任何问题.

Since this is an area I am looking for general guidance, please feel free to open up any issues that I should be aware of.

推荐答案

当然存在一些潜在的性能/维护问题,但是一个好的混淆器至少可以让您解决其中的一些问题.需要注意的事项:

There are certainly some potential performance/maintenance issues, but a good obfuscator will let you get round at least some of them. Things to look out for:

  • 一个明显的问题:如果您的代码通过反射调用方法或动态加载类,那么如果类/方法名称被混淆,这很可能会失败;一个好的混淆器会让你选择类/方法名,不要混淆以解决这个问题;
  • 如果不是同时编译所有应用程序,可能会出现类似的问题;
  • 如果它直接在字节码级别处理,混淆器可以创建原则上 Java 编译器无法创建的代码(例如,它可以插入任意 GOTO 指令,而在 Java 中这些只能作为循环的一部分创建)--这可能有点理论化,但如果我正在编写 JVM,我会优化 Java 编译器可以创建的字节码序列的性能,而不是它不能...
  • 如果混淆器显着改变方法中的字节码数量,或者以某种方式改变给定方法/代码段是否达到某些 JVM 优化的阈值(例如内联方法少于 X 个字节码").

但正如您所看到的,其中一些影响有点微妙和理论化——因此在某种程度上,您需要做的是在混淆后对您的应用程序进行浸泡测试,就像您对任何其他重大更改所做的一样.

But as you can see, some of these effects are a little subtle and theoretical-- so to some extent what you need to do is soak-test your application after obfuscation, just as you would with any other major change.

您还应该注意不要假设混淆会尽可能多地隐藏您的代码/算法(如果这是您的意图)——使用反编译器查看结果混淆类的内容.

You should also be careful not to assume that obfuscation hides your code/algorithm (if that is your intention) as much as you want it to-- use a decompiler to have a look at the contents of the resulting obfuscated classes.

这篇关于混淆应用程序是否存在任何潜在问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆