가상화 보호 솔루션에 대한 문제점

난독화는 정적 분석의 난이도를 높일 수 있지만 동적 분석을 효과적으로 방지할 수는 없습니다. 코드 가상화의 목적은 동적 분석의 난이도를 높이는 것입니다.

Java 코드 가상화는 사용자 정의 가상화 엔진을 구축하여 달성되며, 직접 실행될 수 있는 바이트코드가 이러한 가상화 엔진을 통해 실행될 수 있도록 합니다. 맞춤형 가상화 엔진이기 때문에 외부 세계에서는 실행 방법, 명령어 형식, 기타 정보에 직접 접근할 수 없습니다. 더욱이 이는 상당한 코드 확장을 가져오며 원래 의미 정보가 포함된 코드를 리버스 엔지니어링하기 어렵게 만듭니다.

가상화가 성능에 미치는 영향.

가상화 보호는 매우 강력한 코드 보호 솔루션이지만, 가상화 보호의 가장 큰 문제는성능. 맞춤형 가상화 엔진은 JVM과 같은 수많은 성능 최적화 조치를 채택하기 어렵고 JIT와 같은 성능 최적화 기술을 적용할 수 없습니다. 다음을 사용해 볼 수 있습니다.JVM 엔진 앞서 일반 JVM과 동일한 코드를 실행하고 성능을 비교한다고 말씀드렸는데, 이 경우 100배 이상의 성능 차이가 발생할 수 있습니다.

결론

가상화 보호는 가장 안전한 코드 보호 방법이지만 성능에 미치는 영향이 크기 때문에 프로그램의 모든 코드에 적용할 수는 없습니다. 중요한 코드만 보호할 수 있으며 다른 코드는 여전히 노출 위험이 있습니다. 코드의 다른 부분을 대상으로 하면 코드의 가상화된 부분에 대한 기능 정보를 얻을 수 있습니다.