निष्पादन योग्य बायनेरिज़ के भीतर एम्बेडेड अस्पष्ट स्ट्रिंग्स एन्क्रिप्शन कुंजी जैसी संवेदनशील जानकारी को अनधिकृत पहुंच से बचाने के लिए मूल्यवान है। हालाँकि, वर्ण सरणी में स्ट्रिंग को संग्रहीत करने जैसी सीधी विधियां विश्लेषण के दौरान इसकी सामग्री को आसानी से प्रकट कर सकती हैं। निम्नलिखित उदाहरण पर विचार करें:
इस कोड में दी गई स्ट्रिंग को एन्क्रिप्ट करने के लिए एक कस्टम मैक्रो, "DEFINE_HIDDEN_STRING," शामिल है। मैक्रो प्रदत्त बीज मान (उदाहरण के लिए, "मेरी मजबूत एन्क्रिप्शन कुंजी" -> 0x7f) से प्राप्त एक अद्वितीय कुंजी का उपयोग करके प्रत्येक वर्ण को एन्कोड करता है। बीज पर आधारित एक एन्क्रिप्शन एल्गोरिथ्म को वर्ण अनुक्रम पर लागू किया जाता है, जिससे परिणामी डेटा यादृच्छिक दिखाई देता है और संकलित बाइनरी में पहचानना मुश्किल हो जाता है।
#include "HideString.h" DEFINE_HIDDEN_STRING(EncryptionKey, 0x7f, ('M')('y')(' ')('s')('t')('r')('o')('n')('g')(' ')('e')('n')('c')('r')('y')('p')('t')('i')('o')('n')(' ')('k')('e')('y')) DEFINE_HIDDEN_STRING(EncryptionKey2, 0x27, ('T')('e')('s')('t')) int main() { std::cout#define DEFINE_HIDDEN_STRING(नाम, बीज, SEQ) \ स्थिर स्थिरांक चार* BOOST_PP_CAT(प्राप्त करें, नाम)() \ { \ स्थिर चार डेटा[] = {\ BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_FOR_EACH_I(CRYPT_MACRO, SEED, SEQ)), \ '\0' \ }; \ स्टेटिक बूल एन्क्रिप्टेड = सत्य है; \ यदि (एन्क्रिप्टेड है) \ { \ for (अहस्ताक्षरित i = 0; i
#define CRYPT_MACRO(r, d, i, elem) (elem ^ (d - i))
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3