使用 dotPeek 反编译 .net 程序集给出无效语法

Decompiling .net assembly with dotPeek gives invalid syntax

我在反编译 .net 程序集时遇到问题。当我在 dotPeek 中打开程序集时,有 class 称为 frmMain,其中有数百个变量声明如下:

[SpecialName]
private static int \u0024STATIC\u0024SortByLengthAsc\u002402811241124\u0024xlen;

当我尝试将其导出到项目时,即使我将所有 \u0024 更改为 $,所有这些行都会出错(未定义 STATIC)。我做错了什么吗?

不,程序集已被混淆以防止人们(如您)偷看代码并可能 'steal' 它。这些变量名在 IL 中是允许的,但在实际的 C# 代码中是不允许的,所以这就是它失败的原因。

我知道的唯一补救措施是反向混淆工具,它知道混淆器如何混淆并试图扭转这种局面。或者你可以手工做,这通常会花费很多时间,这证明混淆是有回报的。