Probleme mit Virtualisierungsschutzlösungen

Verschleierung kann die statische Analyse erschweren, die dynamische Analyse jedoch nicht wirksam verhindern. Ziel der Codevirtualisierung ist es, die dynamische Analyse zu erschweren.

Java-Codevirtualisierung wird durch die Entwicklung benutzerdefinierter Virtualisierungs-Engines erreicht. Dadurch können Bytecodes, die direkt ausgeführt werden könnten, über diese Virtualisierungs-Engines ausgeführt werden. Da es sich um eine benutzerdefinierte Virtualisierungs-Engine handelt, hat die Außenwelt keinen direkten Zugriff auf deren Ausführungsmethode, Befehlsformat und andere Informationen. Darüber hinaus führt dies zu einer erheblichen Codeerweiterung, wodurch es schwierig wird, den Code, der seine ursprüngliche semantische Information enthält, zurückzuentwickeln.

Die Auswirkungen der Virtualisierung auf die Leistung.

Virtualisierungsschutz ist eine extrem starke Lösung zum Schutz des Codes, aber das größte Problem beim Virtualisierungsschutz ist LeistungBenutzerdefinierte Virtualisierungs-Engines lassen sich nur schwer in zahlreiche Leistungsoptimierungsmaßnahmen wie die JVM integrieren und können keine Leistungsoptimierungstechniken wie JIT anwenden. Sie können versuchen, die JVM-Engine Wir haben bereits erwähnt, dass man denselben Code auch auf einer regulären JVM ausführen und die Leistung vergleichen kann, was zu einem Leistungsunterschied von über 100 Mal führen kann.

Abschluss

Virtualisierungsschutz ist die sicherste Methode zum Schutz von Code, kann aber aufgrund der erheblichen Auswirkungen auf die Leistung nicht auf den gesamten Code eines Programms angewendet werden. Er schützt lediglich kritischen Code, während übriger Code weiterhin gefährdet ist. Durch gezieltes Anvisieren anderer Codeabschnitte lassen sich funktionale Informationen über den virtualisierten Teil des Codes gewinnen.