Control Flow Flattening

controlFlowFlattening

मूल प्रोग्राम फ़्लो छिपाने के लिए कोड की संरचना बदलता है। रैखिक कोड को switch स्टेटमेंट वाली स्टेट मशीन में बदलकर मैन्युअल विश्लेषण को काफ़ी कठिन बना देता है।

JavaScript

यह विकल्प निष्पादन को काफ़ी धीमा कर सकता है; इसे अपने कोड पर मापें। फ़्लैटन किए जाने वाले नोड्स का अनुपात तय करने के लिए controlFlowFlatteningThreshold का उपयोग करें; कम मान प्रदर्शन को अधिक बचाए रखते हैं।

JavaScript

Control Flow Flattening अन्य बेसिक विकल्पों और VM ऑब्फ़स्केशन के साथ मिलकर काम करता है। जब vmObfuscation चालू होता है, तो पहले वर्चुअलाइज़ेशन चलता है और फिर Control Flow Flattening बचे हुए JavaScript पर लागू होता है, जैसे वे फ़ंक्शन जिन्हें VM के लिए नहीं चुना गया; जो कोड पहले ही बाइटकोड में कंपाइल हो चुका है, वह फ़्लैटन नहीं होता।