
C++ के लिए कंपाइल-टाइम AES स्ट्रिंग ऑब्फ़स्केशन
मानक समाधान length + "#" + string पर निर्भर करते हैं। इसे रिवर्स करना बहुत आसान है।
sbox स्ट्रिंग्स को उच्च-एंट्रॉपी शोर में बदलने के लिए एक constexpr AES-128 ब्लॉक साइफर का उपयोग करता है।
Neetcode के "Encode and Decode Strings" चैलेंज के दौरान, मैंने अपने obfuscation प्रोजेक्ट, Obfusk8 से AES इंजन को पोर्ट किया।
यह इम्प्लीमेंटेशन पहले ही सबमिशन पर 7ms में पास हो गया। क्रिप्टोग्राफ़िक सुरक्षा को प्रदर्शन के लिए समझौता नहीं बनना चाहिए।
strings.exe (या linux में strings) शून्य परिणाम लौटाता है।कार्यान्वयन विवरण के लिए EXAMPLES फ़ोल्डर देखें:
मल्टी-स्ट्रिंग उदाहरण (sbox_test.cpp):
बैच प्रोसेसिंग के लिए _OBF(str) मैक्रो का उपयोग करके vector<string> को संभालने का तरीका दर्शाता है। ट्रांज़िट-रेडी अस्पष्टीकरण के लिए उपयोगी।
सिंगल स्ट्रिंग उदाहरण (sbox_test1.cpp):
ObfStr(str) मैक्रो का उपयोग करके एटॉमिक मैटेरियलाइज़ेशन दर्शाता है। एकल वेरिएबल असाइनमेंट के लिए सबसे उपयुक्त:
string s = ObfStr("ama obfuscation addicted");
7ms रनटाइम। यह साबित करता है कि ओवरकिल भी इष्टतम हो सकता है।
लेखक: x86byte