Control Flow Flattening
controlFlowFlattening
코드 구조를 변환해 원래의 프로그램 흐름을 숨깁니다. 선형 코드를 switch 문을 사용하는 상태 머신으로 바꿔 수동 분석을 훨씬 어렵게 만듭니다.
이 옵션은 실행 속도를 눈에 띄게 늦출 수 있으니 직접 작성한 코드로 측정해 보세요. controlFlowFlatteningThreshold로 평탄화할 노드의 비율을 설정하세요. 값이 낮을수록 성능이 더 많이 유지됩니다.
Control Flow Flattening은 다른 기본 옵션 및 VM 난독화와 함께 사용할 수 있습니다. vmObfuscation이 켜져 있으면 가상화가 먼저 실행되고, 그다음 VM 대상으로 선택되지 않은 함수처럼 남아 있는 JavaScript에 Control Flow Flattening이 적용됩니다. 이미 바이트코드로 컴파일된 코드는 평탄화되지 않습니다.
