反编译装配,使用的编程语言(Decompiled assembly, which programmi

2019-10-29 14:33发布

你怎么知道,如果反编译组件是写在C#或VB.net?

Answer 1:

我不知道在清单/属性的任何明确的“我是编译......”的信息。 也许你可以使用特征检测(特别是,事情怎么样匿名类型实现,和模块级方法),但是:

  • 在大多数情况下,它不应该的问题
  • 你不知道的编译器可能出现类似的,给你错误的答案
  • 并不是所有的IL来自编译器; 它可以被组装从原料IL,或者与IL作为源语言,或经由元编程技术

就个人而言,我会强烈建议避免对源语言的任何依赖



Answer 2:

我依稀记得有是这是在VB项目自动引用的应用组件,而不是C#项目。 我说的是.NET 1.1时代(Visual Studio 2003中)。 它使访问资源管理器外壳的部分很容易的。 我一直在寻找,但一直没能找到它(将编辑,如果我还记得那是什么)。 它可能已被废弃在以后的视觉工作室/下降,但是这将是对原来的VB(思想C#组件也可以参考它)一个非常强烈的信号。

编辑 :正如汉斯在他的评论中提到的组件Microsoft.VisualBasic程序。

除此之外,它可能是通过查找所使用的不同版本的C#VS VB编译器在编译不同的通用语言结构IL的模式是可行的。

如果你想要的是看到源代码的近似编译的程序集。 .NET反编译器,如ILSpy,.net反射或dotPeek做了很好的工作,如果原来的组件不混乱。



文章来源: Decompiled assembly, which programming language was used