Tài liệu
/
Làm rối cơ bản
/

Control Flow Flattening

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.

JavaScript

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.

JavaScript

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.