【发布时间】:2011-05-14 15:51:55
【问题描述】:
Visual Basic 2010 是编译型语言还是解释型语言? vb程序可以反汇编吗?
【问题讨论】:
-
我知道几乎所有使用 .NET 创建的程序集都可以使用 VS 提供的 ildasm 轻松反汇编。
标签: .net vb.net visual-studio-2010
Visual Basic 2010 是编译型语言还是解释型语言? vb程序可以反汇编吗?
【问题讨论】:
标签: .net vb.net visual-studio-2010
【讨论】:
取决于执行环境。但是一般都是编译的。两次,首先从源代码到 IL(中间语言)。再次在运行时通过即时编译器从 IL 到机器代码。除了使用 IL 解释器的 .NET Micro Framework 之外。中间形式允许相当不错的反编译,Reflector 是最好的工具。
【讨论】:
两者兼而有之。它被编译成 IL,然后在运行时“及时编译”(JITed)成机器代码。
【讨论】:
两者兼而有之。它被编译为 CIL(通用中间语言:http://en.wikipedia.org/wiki/Common_Intermediate_Language)。此 CIL 是由 CLR(公共语言运行时)编译为本地代码的 JIT(即时)。
由于 CIL 代码保持完整,因此将 CIL 反编译为 C#、VB .NET 或其他 .NET 变体相当简单。有几种产品可以做到这一点(Reflector、dotPeek)。为了防止源代码被盗,您可以使用混淆器(例如 Dotfuscator)来确保任何将 CIL 反编译为 C#/VB .NET 的尝试都会导致乱码。
【讨论】:
这很复杂。
与 Java 一样,.Net 语言(包括 C# 和 VB)被编译成一种类似字节码的语言,称为 IL(中间语言)。该 IL 是随后分发给其他计算机的内容。
但是,它并不止于此。 IL 在实际执行之前由 JIT(即时)编译器编译为本机代码。是的,vb 和所有语言一样,可以反汇编。
【讨论】: