这些符号在反编译代码中是什么

use*_*028 4 .net c# obfuscation cil

我反编译了一个可执行文件,无法理解源代码(C#)中的这些符号是什么.我会在这里粘贴源代码示例,但是当我尝试粘贴时,反编译源中的特殊字符在此编辑器中不可打印.所以我在这里拍摄几张剪辑图片和粘贴链接,所以任何人都可以看到,所以示例如下:

图片1

图2

图3

我猜的是这个源代码被混淆了吗?并且这些符号可以存在于MSIL中,但是当在C#中进行翻译时,它们会产生非法字符.是对的吗?关于如何解决这个问题的任何建议,比如对这些东西进行替换?

usr*_*usr 9

MSIL对于允许作为标识符名称的内容有非常宽松的规则.混淆器故意选择C#无法表示的字符,因此您无法往返C#.

但是,您可以反编译为IL并能够编译项目.

另请查看C#的unicode标识符.您可以在C#标识符中包含unicode转义码,这对许多人来说都是令人惊讶的.例:

class @class
{
   public static void @static(bool @bool) {
      if (@bool)
         System.Console.WriteLine("true");
      else
         System.Console.WriteLine("false");
   }   
}
class Class1
{
   static void M() {
      cl\u0061ss.st\u0061tic(true);
   }
}
Run Code Online (Sandbox Code Playgroud)