문서
/
VM 난독화
/

브라우저 환경

브라우저 환경

Pro
v7.9.0+

프로덕션 빌드가 어떻게 제공되는지 선언하여 보호된 코드가 무결성을 그에 결속하도록 합니다.

browserEnvironment 옵션은 프로덕션 빌드가 제공되는 환경에 대한 사실을 선언하여, 보호된 코드가 그 사실에 자신을 결속시키거나 반응할 수 있게 합니다. 작은 객체이며, 각 필드는 특정 보호 기능 하나와 함께 사용할 때만 적용됩니다 — 이 옵션 단독으로는 아무 동작도 하지 않습니다:

browserEnvironment: { transport: 'https', hosting: 'remote' }

transport

프로덕션이 번들을 제공하는 스킴 — 'http' 또는 'https'. vmSelfDefending과 함께 사용할 때 적용됩니다.

'https'를 지정하면 리버스 엔지니어가 일반 HTTP로 제공하는 사본은 올바르게 실행되지 않습니다. 'http'이거나 필드를 설정하지 않으면 그러한 보호가 추가되지 않습니다.

hosting

프로덕션 번들이 제공되는 위치 — 'remote' 또는 'local'. vmDebugProtection과 함께 사용할 때, browserbrowser-no-eval 타깃에서만 적용됩니다. 난독화 도구 버전 7.14.0 이상이 필요합니다.

'remote'로 설정하면, 리버스 엔지니어가 가져가 자신의 로컬 환경에서 실행하는 복사본은 런타임 환경 불일치로 취급되며, 자동화 방어가 vmDefenseReaction에 설정된 대로 반응합니다. 'local'이거나 필드를 설정하지 않으면 이런 보호는 추가되지 않습니다.

지원되는 타깃

browserEnvironmentbrowser, browser-no-eval, service-worker 타깃에만 적용됩니다. node, userscript, bytenode에서는 옵션이 거부되어, 설정을 조용히 버리는 대신 검증 오류로 난독화가 실패합니다. hosting은 그보다 더 좁습니다. service worker에서 허용은 되지만 거기서는 아무것도 결속시키지 않습니다.

요구 사항

  • transportvmSelfDefending과, hostingvmDebugProtection과 함께 사용할 때 적용됩니다. 그 외에는 둘 다 아무 동작도 하지 않습니다.
  • browser, browser-no-eval 또는 service-worker 타깃(hostingbrowser 또는 browser-no-eval).
  • 난독화 도구 버전이 transport7.9.0 이상, hosting7.14.0 이상.

예시

JavaScriptObfuscator.obfuscate(code, {
    vmObfuscation: true,
    vmSelfDefending: true,
    vmDebugProtection: true,
    target: 'browser',
    browserEnvironment: { transport: 'https', hosting: 'remote' }
});