
Embed a payload inside a PNG file
PNG फ़ाइल के भीतर पेलोड एम्बेड करें, पेलोड को कई IDAT अनुभागों में विभाजित करके। प्रत्येक अनुभाग को RC4 एन्क्रिप्शन एल्गोरिथम के साथ अपनी स्वयं की 16-बाइट कुंजी का उपयोग करके अलग-अलग एन्क्रिप्ट किया जाता है।
इस रिपॉज़िटरी में दो कार्यान्वयन शामिल हैं:
EmbedPayloadInPng.py - किसी निर्दिष्ट PNG फ़ाइल में इनपुट पेलोड एम्बेड करने के लिए पायथन स्क्रिप्ट।FetchPayloadFromPng - EmbedPayloadInPng.py द्वारा आउटपुट की गई PNG फ़ाइल से पेलोड निकालें, और ExtractDecryptedPayload फ़ंक्शन का उपयोग करके इसे डिक्रिप्ट करें।EmbedPayloadInPng.py का उपयोग करें:
पेलोड-एम्बेडेड PNG फ़ाइल Output.png, मूल फ़ाइल के समान ही .PNG फ़ाइल है।
https://github.com/user-attachments/assets/bec6f597-9955-4552-80f7-f484bd5754c3
EmbedPayloadInPng.py द्वारा आउटपुट की गई MARKED_IDAT_HASH मैक्रो परिभाषा को कॉपी करें और इसे FetchPayloadFromPng प्रोजेक्ट में मौजूदा परिभाषा से बदलें यहाँ।जैसा कि पहले बताया गया है, EmbedPayloadInPng.py पेलोड फ़ाइल को PNG फ़ाइल के भीतर एम्बेड करने के लिए ज़िम्मेदार है। नीचे पेलोड-एम्बेडेड PNG फ़ाइल की संरचना दी गई है।

चूँकि IDAT अनुभाग का अधिकतम आकार 8192 बाइट्स है, हमारा पेलोड कई IDAT अनुभागों में विभाजित किया जाता है। प्रत्येक अनुभाग का आकार (8192 - 16 [RC4 कुंजी लंबाई]) के बराबर होता है। इसके अलावा, अंतिम IDAT अनुभाग में पेलोड के शेष बाइट्स होंगे।
निम्नलिखित छवियाँ EmbedPayloadInPng.py के आउटपुट को समझाती हैं और बनाई गई PNG फ़ाइल की संरचना से इसकी तुलना करती हैं:


IDAT अनुभाग, जो हमारे रैंडम अनुभाग के बाद आता है (नीले रंग में)। यह छवि पहले से यादृच्छिक IDAT अनुभाग के CRC हैश की स्थिति और आकार को भी दर्शाती है (पीले रंग में)।

