Secure Virtual Machine (SVM)
Eintrag zuletzt aktualisiert am: 20.02.2026
Secure Virtual Maschine (SVM) ist die Bezeichnung für eine spezielle Virtual Maschine (Ablaufumgebung) für
.NET-Anwendungen, die im Gegensatz zu der Standard-VM der
CLR gegen die Dekompilierung stark erschwert.
Die SVM war ein Produkt von Microsoft (Software Licencing and Protection Services (
SLPS)), wird aber seit 2009 von einem Microsoft Partner vertrieben als "Software Code Protection":
http://www.inishtech.com/. Microsoft ist Teilhaber an InishTech.
Durch sogenannte Permutationen wird für jeden Hersteller oder sogar jedes Produkt eine eigene SVM mit einem eigenen Befehlssatz (
Secure Execution Environment Language -
SEEL) erstellt. Die eigene SVM besitzt damit einen eigenen, undokumentierten Befehlssatz. Anwendungen werden nach der eigentlichen Kompilierung nach
MSIL/
CIL nochmals umgewandelt in die SVM-spezifische Zwischensprache. Die Anwendung kann danach nur noch mit der SVM ausgeführt werden, was bedeutet, das die SVM mitausgeliefert werden muss. Eine SVM hat eine Größe von rund 1 MB.
Zusätzlich zu dem eigenen Befehlssatz verwendet die SVM auch noch Verschlüsselung, um die Dekompilierung nochmals zu erschweren. Eine Dekompilierung einer SVM-geschützten Anwendung ist jedoch nicht komplett unmöglich.
Wichtig ist, der SVM-Schutz die Leistung (Ausführungsgeschwindigkeit) wesentlich reduziert. Daher sollte man niemals eine ganze Anwendung, sondern allenfalls besonders sensible und/oder innovative Bereiche einer Anwendung schützen.
SVM kann auch für Lizensierung und Produktaktivierung (auch modulweise) eingesetzt werden.