Visual Basic .NET kompiliert oder interpretiert?

8

ist Visual Basic 2010 eine kompilierte oder interpretierte Sprache? Kann ein vb-Programm demontiert werden?

    
a438 14.05.2011, 15:51
quelle

5 Antworten

14

Es ist kompiliert zu IL-Code , was normalerweise JITted . Es ist möglich, native Bilder mit einem Werkzeug wie Ngen zu erstellen.

Es ist sehr einfach , .NET-Assemblies zu disassemblieren. Es gibt viele Tools (kostenlos und kommerziell), die dies tun.

    
Oded 14.05.2011, 15:55
quelle
2

Hängt von der Ausführungsumgebung ab. Aber es ist in der Regel kompiliert. Zweimal, zuerst vom Quellcode bis IL (Intermediate Language). Wieder zur Laufzeit von IL, Code von einem Just-in-Time-Compiler zu bearbeiten. Außer zum Beispiel das .NET Micro Framework, das einen IL-Interpreter verwendet. Die Zwischenform ermöglicht eine ziemlich gute Dekompilierung, Reflektor ist das beste Werkzeug dafür.

    
Hans Passant 14.05.2011 15:58
quelle
2

Es ist irgendwie beides. Es wird in IL kompiliert, das dann zur Laufzeit "just in time kompiliert" (JITed) in den Maschinencode wird.

    
Esteban Araya 14.05.2011 15:55
quelle
0

Es ist eine Mischung aus beidem. Es ist nach CIL (Common Intermediate Language: Ссылка ) übersetzt. Diese CIL ist JIT (Just in Time), die von der CLR (Common Language Runtime) in nativen Code kompiliert wird.

Da der CIL-Code intakt ist, ist es recht einfach, die CIL in C #, VB .NET oder eine andere .NET-Variante zu dekompilieren. Hierfür gibt es mehrere Produkte (Reflector, dotPeek). Um einen Diebstahl des Quellcodes zu verhindern, können Sie einen Obfuscator (zB Dotfuscator) verwenden, um sicherzustellen, dass alle Versuche, die CIL in C # / VB .NET zu dekompilieren, zu Kauderwelsch führen.

    
Jeff 14.05.2011 15:57
quelle
0

Es ist kompliziert.

Wie Java werden .NET-Sprachen (einschließlich C # und VB) in eine bytecode-ähnliche Sprache namens IL (Intermediate Language) übersetzt. Diese IL wird dann auf andere Computer verteilt.

Aber damit hört es nicht auf. Die IL wird wiederum von dem JIT-Compiler (just in time) in nativen Code kompiliert, bevor sie tatsächlich ausgeführt wird. Und ja, vb, wie alle Sprachen, kann auseinandergebaut werden.

    
Joel Coehoorn 14.05.2011 15:57
quelle

Tags und Links