VM 난독화가 실제로 동작하는 모습
프로그램은 이전과 완전히 동일하게 동작합니다. 다만 읽어낼 것이 아무것도 남지 않을 뿐입니다.
읽을 수 있는 소스 코드
VM으로 보호된 바이트코드
* vm-high-obfuscation 프리셋과 고급 LLM 대응 방어를 적용해 난독화한 예제 코드입니다
원래의 로직은 내장된 VM만 실행할 수 있는 맞춤형 바이트코드로 변환됩니다. 정적 분석 도구는 VM 전체를 먼저 리버스 엔지니어링하지 않고서는 이 코드를 이해할 수 없습니다.
다층으로 구성된 LLM 대응 리버스 엔지니어링 방어
LLM이 난독화된 코드를 공격하는 대부분의 경로를 차단하도록 설계되었습니다.
* vm-high-obfuscation 프리셋과 LLM 대응 방어를 적용해 난독화한 코드에 대한 리버스 엔지니어링 시도입니다. JS 환경에서는 런타임 메모리 검사가 언제나 가능하며, 저희 방어 기능은 거기에 도달하기까지의 비용을 크게 높입니다.
그 이면의 동작 원리
LLM 대응 기능이 내장된 두 개의 독립적인 방어 계층이 함께 작동하여 분석과 리버스 엔지니어링을 현실적으로 불가능하게 만듭니다
VM 자기 방어
VM 런타임은 모든 단계에서 자신의 무결성을 검증합니다. 어떤 수정이나 훅 주입, 프록시 가로채기도 감지되어 무력화됩니다.
코드 무결성 검증
함수 훅 감지
프록시 및 가로채기 트랩
호출 스택 검증
에이전트 작업 흐름 교란
VM 디버그 보호
개발자 도구와 중단점, 런타임 검사를 차단하여 VM 실행을 단계별로 따라가거나 관찰하기 극도로 어렵게 만듭니다.
DevTools 감지 및 대응
중단점 무력화
실행 타이밍 검증
실행 환경 핑거프린팅
미끼 바이트코드를 이용한 교란
LLM 분석 대응 방어
기본 난독화와 VM 난독화 비교
기능별 상세 비교
| 기능 | 기본 | VM 난독화 |
|---|---|---|
문자열 배열 암호화 | ||
제어 흐름 평탄화 | ||
데드 코드 주입 | 단순 | 고급 |
자기 방어 | 단순 | 고급 |
디버그 보호 | 단순 | 고급 |
바이트코드 가상화 | ||
바이트코드 암호화 | ||
코드 무결성 검사 | ||
후킹 방지 및 변조 방지 | ||
LLM 대응 방어 |
JavaScript 코드 보호 활용 사례
HTML5 게임부터 엔터프라이즈 애플리케이션까지, JavaScript를 도용과 리버스 엔지니어링으로부터 보호하세요
HTML5 게임
플레이어의 치팅이나 경쟁사의 게임 로직 도용을 막으세요. VM 난독화는 리버스 엔지니어링을 극도로 어렵게 만듭니다.
SaaS 애플리케이션
클라이언트 측 코드를 들여다볼 수 있는 경쟁사로부터 독자적인 프런트엔드 알고리즘과 비즈니스 로직을 보호하세요.
라이선스 기반 소프트웨어
변조에 강한 바이트코드로 라이선스 검증과 프리미엄 기능, 불법 복제 방지 장치를 안전하게 지키세요.
브라우저 확장 프로그램
모방 제품과 악의적인 변조로부터 확장 프로그램 코드를 지키세요. 지식 재산을 안전하게 보호할 수 있습니다.
