문서
/

레시피

레시피

javascript-obfuscator를 연동할 때 흔히 마주치는 문제들을 처음부터 끝까지 짚어주는 실전 가이드입니다. 각 레시피는 개별 플래그를 설명하기보다, 특정 목표를 달성하기 위해 옵션을 어떻게 조합할지에 초점을 맞춥니다.

해결하려는 문제에 맞는 레시피를 골라보세요. 레시피는 앞으로도 계속 추가될 예정입니다. 여기에서 다루지 않은 연동 시나리오를 만나셨다면 알려주시면 문서로 정리하겠습니다.

이 섹션의 내용

모범 사례

무엇을 보호하고 무엇을 그대로 두어야 하는지, 그리고 난독화로는 할 수 없는 일이 무엇인지 설명합니다.

백엔드에서 바이트코드 배열 키 가져오기

로드 시점에 백엔드에서 키를 가져오는 비동기 키 게터를 사용해 VM 바이트코드 복호화 키를 클라이언트에 두지 마세요.

호스트 측 템플릿 치환

reservedNames와 reservedStrings를 사용해 서버에서 렌더링한 값을 VM 난독화된 JavaScript에 주입합니다.

LLM 분석으로부터 함수 이름 숨기기

VM 난독화된 코드가 의미 있는 함수 이름을 LLM에 노출할 수 있는 이유와, IIFE로 감싸서 이를 차단하는 방법입니다.

VM 런타임 오류 진단하기

"Invalid array length" 같은 VM 런타임 오류를 단계별로 점검하고, 대상 지정 및 자기 방어 설정 오류와 실제 버그를 구분합니다.

식별자 충돌 피하기

VM 난독화된 여러 파일을 번들링할 때 파싱 단계에서 "Identifier already declared" 오류가 발생하는 이유와, random 또는 hexadecimal 식별자로 해결하는 방법입니다.

eval 및 new Function과 함께 VM 난독화 사용하기

VM 난독화가 직접 eval 및 Function 생성자 호출을 처리하는 방식, 바이트코드로 변환되는 대상과 건너뛰는 대상, 난독화 도구가 내보내는 경고, 그리고 런타임 ReferenceError를 진단하는 방법입니다.

VM 방어 텔레메트리 및 대응

vmDefenseHook으로 VM 방어 탐지 결과를 백엔드에 보고하고, vmDefenseReaction으로 탐지 범주별 대응 방식을 조정합니다.