Control Flow Flattening
controlFlowFlattening
Biến đổi cấu trúc mã để che giấu luồng chương trình ban đầu. Khiến việc phân tích thủ công khó hơn nhiều bằng cách chuyển mã tuyến tính thành một máy trạng thái với câu lệnh switch.
Tùy chọn này có thể làm chậm việc thực thi đáng kể; hãy đo lường trên chính mã của bạn. Dùng controlFlowFlatteningThreshold để đặt tỷ lệ các nút được làm phẳng; giá trị càng thấp thì càng giữ được nhiều hiệu năng.
Control Flow Flattening kết hợp được với các tùy chọn cơ bản khác và với làm rối VM. Khi vmObfuscation được bật, quá trình ảo hóa chạy trước, sau đó Control Flow Flattening áp dụng cho phần JavaScript còn lại, chẳng hạn các hàm không được chọn cho VM; mã đã được biên dịch thành bytecode sẽ không bị làm phẳng.
