Protector4J의 작동 원리
현재 Java 코드 보호 솔루션의 문제점
Protector4J의 작동 원리를 이해하기 전에, 먼저 다른 Java 코드 보호 솔루션에 존재하는 문제점을 알아보겠습니다.
코드 난독화
JVM 바이트코드의 높은 의미론적 특성으로 인해 분석과 읽기가 매우 쉽습니다. 동적 디버깅을 통해 실행 로직을 쉽게 분석할 수 있으므로, 난독화는 신뢰할 수 있는 보호 솔루션이 아닙니다.
자세한 내용은 다음 문서를 참조하세요: https://protector4j.com/ko/articles/the-issues-of-code-obfuscation/
클래스 파일 암호화
JVM 어태치 메커니즘의 존재로 인해, 일반 JRE에서 분리되지 않은 모든 소위 암호화된 코드는 어태치 도구를 통해 쉽게 얻을 수 있습니다. 따라서 이것은 가장 비효과적인 보호 솔루션입니다.
자세한 내용은 다음 문서를 참조하세요: https://protector4j.com/ko/articles/the-issues-of-class-encryption/
VMP 보호
가상화 보호는 가장 안전한 코드 보호 형태이지만, 성능에 심각한 영향을 미치기 때문에 프로그램의 핵심 코드에만 적용할 수 있습니다. 다른 코드는 여전히 노출 위험이 있습니다. 코드의 다른 부분을 대상으로 하여, 크래커는 가상화된 코드의 기능 정보를 여전히 얻을 수 있습니다.
자세한 내용은 다음 문서를 참조하세요: https://protector4j.com/ko/articles/the-issues-of-vm-protection/
AOT 컴파일
AOT 컴파일의 구성과 컴파일은 매우 어려우며, 컴파일 실패 확률이 높습니다. 컴파일이 성공하더라도 코드 로직은 바이트코드 표현에서 머신 코드 표현으로 변환될 뿐이며, 고유한 로직은 특별한 보호 없이 여전히 존재합니다. 컴파일 및 실행 메커니즘을 이해할 수 있다면, 읽을 수 있는 코드를 여전히 역공학할 수 있습니다.
자세한 내용은 다음 문서를 참조하세요: https://protector4j.com/ko/articles/the-issues-of-aot-protection/
Protector4J의 작동 원리
전용 압축 패키지 형식 JARX를 정의했습니다
Java 코드를 보호하기 위해, JARX라는 전용 압축 문서 형식을 만들어 JVM 런타임에 통합했습니다. Protector4J로 처리된 JAR 파일은 JARX 형식으로 변환됩니다.
JVM에 대한 심층적인 커스터마이징과 수정을 수행했습니다
JVM에 대한 심층적인 연구를 통해 깊은 커스터마이징과 수정을 수행했습니다. 모든 추가 메커니즘을 제거하고 바이너리 보안 수준에서 많은 강화와 최적화를 적용했습니다. 이를 통해 크래커가 기존 방법을 사용하여 클래스 정보를 내보내는 것을 방지합니다. 현재 강도로, Protector4J로 보호된 암호화 애플리케이션은 높은 수준의 보안을 가지고 있다고 믿습니다. 그러나 크래킹과 안티 크래킹 사이의 전투는 항상 지속적인 개선입니다. 애플리케이션의 보안을 지속적으로 향상시키기 위해 암호화 및 보호 솔루션을 계속 개선할 것입니다.