有没有理由不发送你的应用程序的pdb?

时间:2008-09-18 00:37:26

标签: c# .net

由于您可以使用反射器对.Net应用程序进行反向工程,是否有任何理由不将pdb文件与应用程序一起发送?如果您随附它,那么您的堆栈跟踪将包含问题的行号,这在崩溃时很有用。

请为每条评论输入1个理由进行投票。

6 个答案:

答案 0 :(得分:3)

发货pdb不会给用户带来任何额外的便利。因此没有理由使用该应用程序发送pdb文件。除了pdb文件通常有大尺寸。

您应该使用本地Microsoft Symbol Server快速访问与错误报告相对应的pdb文件,而不是运送pdb文件。 Here您可以找到有关如何使用Symbol Server的详细说明。

答案 1 :(得分:2)

反射器可以获得.NET应用程序的MSIL代码的高级版本,但这并不意味着它必然可用/可攻击......如果没有,很多代码对于随意阅读是没有意义的私人变量的名称&函数以及.NET Reflector在没有PDB文件的情况下无法访问的其他内容。

显然,如果你正在使用任何体面的混淆器(我个人喜欢{smartassembly},但因为它缺乏交叉混淆),那么你将失去所有的保护,只是因为行号的附加价值,这不是一个真正公平的权衡。

无论如何,行号被高估了!

答案 2 :(得分:2)

大多数人都希望发布优化版本。但是,如果您运送带有优化构建的pdb,则您获得的源行号可能会关闭。

答案 3 :(得分:1)

使用您的应用程序运送PDB可以更容易地进行逆向工程,因为它包含局部变量/对象名称,函数原型等。

答案 4 :(得分:1)

除了在任何严肃的项目中他们都非常沉重的事实?不,没有理由不介意人们对您的软件进行逆向工程。

答案 5 :(得分:0)

为什么你会发运超出你需要的东西?