【发布时间】:2015-11-22 09:10:28
【问题描述】:
所以我们的服务器上有一个旧的 dll,它是由我们制作的,并且源代码很久以前就丢失了,我尝试调试 .dll 文件(由我们的一位程序员制作)并且反编译的代码有点protected 所以在某些类中的变量是这样的:
private static List<string> \u0023\u003DqiItWZoAhR0uPggAduB3lPA\u003D\u003D = new List<string>();
那么我们有什么办法可以恢复这个变量名,至少我们可以得到一些关于事情是如何工作的信息?
【问题讨论】:
-
当您说受保护时,您的意思是它已被 .Net 混淆,例如。如果是这样,那么变量名称将被散列或加密。我认为没有办法解决这个问题,因为它用于防止反编译。
-
是的,它可能被用于我们可以得到的受保护但我相信这对我们有帮助吗?
-
如果混淆的标识符在源代码中遵循标识符的法律规则,当您发现它们的含义时,您应该能够使用 Visual Studio 中的重构工具重命名它们。但如果逆向混淆程序集很容易,那么混淆器工具现在就不会发挥作用了吗?
-
另外,停止混淆您在自己的服务器上托管的自己的程序集。这似乎只是增加了不必要的步骤,使事情变得不必要的困难。当出现问题时,来自异常的堆栈跟踪也将完全无法解码。
标签: c# dll decompiling dotpeek