"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > हम निष्पादन योग्य बायनेरिज़ में एम्बेडेड स्ट्रिंग्स को प्रभावी ढंग से कैसे अस्पष्ट कर सकते हैं?

हम निष्पादन योग्य बायनेरिज़ में एम्बेडेड स्ट्रिंग्स को प्रभावी ढंग से कैसे अस्पष्ट कर सकते हैं?

2024-12-22 को प्रकाशित
ब्राउज़ करें:805

How Can We Effectively Obfuscate Strings Embedded in Executable Binaries?

बाइनरी कोड में अस्पष्ट स्ट्रिंग्स

समस्या विवरण

निष्पादन योग्य बायनेरिज़ के भीतर एम्बेडेड अस्पष्ट स्ट्रिंग्स एन्क्रिप्शन कुंजी जैसी संवेदनशील जानकारी को अनधिकृत पहुंच से बचाने के लिए मूल्यवान है। हालाँकि, वर्ण सरणी में स्ट्रिंग को संग्रहीत करने जैसी सीधी विधियां विश्लेषण के दौरान इसकी सामग्री को आसानी से प्रकट कर सकती हैं। निम्नलिखित उदाहरण पर विचार करें:

#include "HideString.h" DEFINE_HIDDEN_STRING(एन्क्रिप्शनकी, 0x7f, ('M')('y')(' ')('s')('t')('r')('o')('n')('g') (' ')('कूटलेखन ')(' ')('चाबी')) DEFINE_HIDDEN_STRING(एन्क्रिप्शनKey2, 0x27, ('T')('e')('s')('t')) मुख्य प्रवेश बिंदु() { std::cout

इस कोड में दी गई स्ट्रिंग को एन्क्रिप्ट करने के लिए एक कस्टम मैक्रो, "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