[C++] सी + + XOR एन्क्रिप्शन


Answers

आपके कंटेंट डेटा के आधार पर, आप एफआरबी द्वारा निरुपित आवंटित स्मृति में चार विकल्प लिखते हैं या इसके बाद ( बफर ओवररन ) "C ++ Builder / main.cpp" में घुमक्कन (एफबी, पसंद) फोन करते हैं।

फिक्स: डेटा + विकल्प चार के लिए एफबी में पर्याप्त स्थान आवंटित करें जैसा कि आप द्विआधारी डेटा के साथ काम कर रहे हैं, आपको स्ट्रिंग फ़ंक्शंस का उपयोग नहीं करना चाहिए (उदा: strcat )।

FB = new char[fs + 1];
memcpy(FB +fs, option, 1); // copy the option at end
Question

क्रिप्टोग्राफी और रनटाइम पीई क्रिप्टर्स पर कई श्वेत पत्रों को पढ़ने के बाद, मैंने अपना खुद का लिखने का फैसला किया। यह बहुत आसान है और केवल शैक्षिक उद्देश्यों के लिए है

यहां गीथहब रेपो है: https://github.com/jyang772/XOR_Crypter

मेरे पास दो प्रश्न हैं

  • सबसे पहले , मुझे प्रत्येक आउटपुट किए गए। Exe (बिल्डर के द्वारा बनाई गई फ़ाइल। संकलक नहीं) को शुरू करने के लिए मेरी फ़ाइल अनुमतियों को क्यों बदलना है? यह एक फाइल बनाता है जो Shared मुझे इसे सही क्लिक करना होगा और Nobody साथ शेयर का चयन करना होगा क्या फ़ाइल पहुँच और सुरक्षा अधिकारों के साथ ऐसा कुछ है? इनपुट और आउटपुट फ़ाइलों को पढ़ने और लिखने के लिए मैं CreateFile() और Readfile का उपयोग कर रहा हूं।

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx

  • दूसरा , मैं काम करने के लिए XOR एन्क्रिप्शन प्राप्त करने के लिए प्रतीत नहीं कर सकता मैंने जो कुछ किया है, उसके लिए यह काफी आसान है। बाइट आकार समान हैं जब मैं जांच कर रहा था, तो मेरे पास बिल्डर और स्टब था, प्रत्येक आउटपुट में एक फ़ाइल फ़ाइल को अनएन्क्रिप्ट किया गया था वह एक जैसे है। फिर मैंने एन्क्रिप्ट किए गए डेटा के साथ प्रयास किया। इसमें कोई संदेह नहीं है कि सिफर के साथ डेटा एन्क्रिप्ट किया गया है, हालांकि बाद में यह स्टब द्वारा डिक्रिप्ट किया गया है, हालांकि यह रिक्त दिखाई देता है। मैं उलझन में हूं।

यहां मेरा XOR कार्यान्वयन है:

एफएस = बाइट आकार Rsize = बाइट आकार समान होना चाहिए।

बिल्डर:

 char cipher[] ="penguin";
      for (int i = 0; i < fs; i++)
        {   
                FB[i] ^= cipher[i % strlen(cipher)]; // Simple Xor chiper
        }

स्टब:

char cipher[] = "penguin";
for (int i = 0; i < Rsize; i++)
    {
        RData[i] ^= cipher[i % strlen(cipher)];
    }

अगर मैं बिल्डर और स्टब में एन्क्रिप्शन फ़ंक्शन को टिप्पणी करने के लिए कहता हूं, तो क्रिप्टेड फ़ाइल ठीक चलती है। अनुमति त्रुटियों को छोड़कर, उह।

मैं एक विकल्प मेनू को शामिल करने की भी कोशिश कर रहा हूं जहां उपयोगकर्ता एन्क्रिप्शन पद्धति का इस्तेमाल कर सकता है। शायद मैंने कुछ गलत किया हो सकता है? बिल्डर। एक्सई FB बफर के अंत में उपयोगकर्ता की पसंद युक्त एक बाइट जोड़ता है। Stub.exe वह पढ़ता है और यह निर्धारित करता है कि डेटा को डिक्रिप्ट करने के लिए किस एन्क्रिप्शन विधि का उपयोग किया जाता है।