[英]Decompiled с# code shows errors
我已经反编译了 C# dll,现在无法编译它。 它显示奇怪的错误,例如在某些 switch 块中,某些 case 块没有 break 语句,或者显示诸如“无法将 int 转换为 bool”之类的错误。 但是这个大小的dll错误量并不是很大,所以我认为不是反编译器的问题。
编译器是否有一些指令(例如,生命不安全)可以解决这个问题? 或者为什么会出现这种奇怪的错误?
PS dll 没有损坏 - 应用程序现在正在使用它。 我正在使用 dotPeek 进行反编译,并使用 Visual Studio 15 来编译结果代码。
对于这样的错误:
"Can not cast int to bool"
绝对没有任何编译器指令,让你的编译器继续前进,我认为你的反编译搞砸了反编译的东西......你可以简单地与其他反编译尝试,看看你得到另一个结果,有效的替代品: ILSpy , JustDecompile和点网IL编辑器。
请注意,一些商业 DLL 被混淆只是为了试图让反编译器和反编译器变得困难......
小心避免破坏某些版权。
将 IL 反编译为 C# 非常困难,而且反编译器可能做错了什么。 根据我的经验,反编译和编译代码的行为也可能与原始程序集不同,因此请注意。 而这样的编译错误可能是 dotPeek 不确定的指示,所以想想它应该做什么或在 IL 中查找。
如果您愿意对程序集进行非常小的编辑(注入方法调用,公开某些内容),直接在ildasm
获得的 IL 中进行可能更安全。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.