से सी ++ कक्षा के नामों को निकालें मेरे पास विजुअल स्टूडियो 2010 के तहत एक सी ++ प्रोजेक्ट है जो एक डीएल में संकलित करता है। मेरे पास परियोजना में परिभाषित कई निजी कार्यान्वयन-विशिष्ट वर्ग हैं, उदा। CMyClass
। यह वर्ग डीएलएल या किसी भी इंटरफ़ेस फ़ंक्शन द्वारा निर्यात नहीं किया जाता है। हालांकि, जब मैं जेनरेट की गई डीएलएल फ़ाइल की जांच करता हूं, तो इसमें एक स्ट्रिंग "सीएम क्लास" संग्रहीत होती है। यह एक रिलीज बिल्ड है, और मैं नहीं चाहता कि यह स्ट्रिंग डीएलएल फाइल में दिखाई दे। यह डीएल ग्राहकों को भेज दिया जाता है, और मैं अपने प्रोजेक्ट में डीएल फाइल को छीनने के लिए उपयोग किए जाने वाले सभी नाम चाहता हूं, इसलिए कोई भी हमारे डीएल में उपयोग किए जाने वाले एल्गोरिदम पर इतना आसान संकेत प्राप्त नहीं कर सकता है।बाइनरी डीएल फ़ाइल
मैं रिलीज कॉन्फ़िगरेशन का उपयोग करता हूं। प्रोजेक्ट गुणों में, लिंकर टैब के तहत "जेबेट डीबग जानकारी" विकल्प बंद कर दिया गया है, सी/सी ++ टैब के तहत "डीबग सूचना प्रारूप" को "प्रोग्राम डेटाबेस (/ जीआई)" पर सेट किया गया है। मैंने बिना किसी सफलता के "डीबग सूचना प्रारूप" के लिए खाली स्ट्रिंग सेट करने का प्रयास किया।
डीएल में पाया गया स्ट्रिंग [email protected]@
जैसा दिखता है और डीएलएल फ़ाइल के बहुत अंत में स्थित है। यह डीएलएल फ़ाइल में "सीएम क्लास" स्ट्रिंग का एकमात्र घटना है। हालांकि, यह स्ट्रिंग लगभग सभी मेरे आंतरिक वर्गों के लिए प्रस्तुत की जाती है।
इन उल्लेखों से कैसे छुटकारा पाएं?
अद्यतन
कृपया ध्यान दें, मैं नहीं चाहता कि करने के लिए स्रोत कोड में ही अंधेरा करना चाहते हैं। प्रदान किया गया लिंक अप्रासंगिक है। मुझे बस कोई कारण नहीं दिख रहा है कि कक्षा नाम डीएलएल फ़ाइल में क्यों संग्रहीत किए जाते हैं। मैं हमेशा निर्माण से पहले अपने वर्गों का नाम बदल सकता हूं, लेकिन यह बहुत सीधा समाधान नहीं है।
Update2
मैं, इस qustion बंद करने पर समुदाय के साथ सहमत नहीं हूँ के बाद से इस एक नकली नहीं है। और जवाब Tyler Gill द्वारा टिप्पणियों में दिया गया है। उनके लिए धन्यवाद और दूसरों पर शर्म की बात है।
http://stackoverflow.com/questions/1025494/obfuscating-cc-code – Ram
"मैं नहीं चाहता कि यह स्ट्रिंग डीएलएल फाइल में दिखाई दे" यह सही कारण है कि आप कक्षा का नाम क्यों सोचते हैं छुपाओ एक सी ++ कोड संकलन खुद में पर्याप्त obfuscation है! – Ram
@ राम क्योंकि कक्षाओं के नाम एल्गोरिदम के नाम से मेल खाते हैं जो हम समस्या को हल करने के लिए उपयोग करते हैं। हम नहीं चाहते कि किसी को पता चले कि हम किस एल्गोरिदम का उपयोग करते हैं। – Mikhail