Control Flow Flattening
controlFlowFlattening
Przekształca strukturę kodu, aby ukryć pierwotny przepływ programu. Znacznie utrudnia ręczną analizę, zamieniając kod liniowy w maszynę stanów z instrukcją switch.
Ta opcja może zauważalnie spowolnić wykonanie; zmierz to na własnym kodzie. Za pomocą controlFlowFlatteningThreshold ustawisz odsetek spłaszczanych węzłów; niższe wartości pozwalają zachować więcej wydajności.
Control Flow Flattening łączy się z pozostałymi opcjami podstawowymi oraz z obfuskacją VM. Gdy vmObfuscation jest włączone, najpierw wykonywana jest wirtualizacja, a Control Flow Flattening obejmuje następnie pozostały kod JavaScript, na przykład funkcje niewybrane do VM. Kod już skompilowany do kodu bajtowego nie jest spłaszczany.
