Probleme mit Virtualisierungsschutzlösungen

Verschleierung kann die Schwierigkeit einer statischen Analyse erhöhen, eine dynamische Analyse jedoch nicht wirksam verhindern. Der Zweck der Codevirtualisierung besteht darin, die Schwierigkeit der dynamischen Analyse zu erhöhen.

Die Virtualisierung von Java-Code wird durch den Aufbau benutzerdefinierter Virtualisierungs-Engines erreicht, sodass Bytecodes, die direkt ausgeführt werden könnten, über diese Virtualisierungs-Engines ausgeführt werden können. Da es sich um eine benutzerdefinierte Virtualisierungs-Engine handelt, kann die Außenwelt nicht direkt auf die Ausführungsmethode, das Befehlsformat und andere Informationen zugreifen. Darüber hinaus führt es zu einer erheblichen Codeerweiterung, wodurch es schwierig wird, den Code, der seine ursprünglichen semantischen Informationen enthält, zurückzuentwickeln.

Die Auswirkungen der Virtualisierung auf die Leistung.

Der Schutz der Virtualisierung ist eine äußerst starke Code-Schutzlösung, aber das größte Problem beim Schutz der Virtualisierung istLeistung. Benutzerdefinierte Virtualisierungs-Engines sind schwierig, zahlreiche Leistungsoptimierungsmaßnahmen wie JVM zu übernehmen und können keine Leistungsoptimierungstechniken wie JIT anwenden. Sie können versuchen, die JVM-Engine Wir haben bereits erwähnt, dass wir denselben Code wie eine normale JVM ausführen und die Leistung vergleichen können. Dies kann zu einem Leistungsunterschied von über 100 Mal führen.

Fazit

Virtualisierungsschutz ist die sicherste Methode zum Schutz von Code. Aufgrund der erheblichen Auswirkungen auf die Leistung kann er jedoch nicht auf den gesamten Code eines Programms angewendet werden. Er schützt nur kritischen Code, während anderer Code weiterhin dem Risiko einer Offenlegung ausgesetzt ist. Durch die gezielte Behandlung anderer Codeteile können funktionale Informationen über den virtualisierten Codeanteil gewonnen werden.