
पोस्ट-बिल्ड में ELF एक्जीक्यूटेबल्स में कोड इंजेक्ट करता है।

drow एक कमांड-लाइन उपयोगिता है जिसका उपयोग कोड इंजेक्ट करने और ELF निष्पादनयोग्य फ़ाइलों के एंट्रीपॉइंट को हुक करने के लिए किया जाता है (पोस्ट-बिल्ड)। यह असंशोधित ELF निष्पादनयोग्य फ़ाइलों को इनपुट के रूप में लेता है और एक संशोधित ELF निर्यात करता है जिसमें एक उपयोगकर्ता-प्रदत्त पेलोड एम्बेडेड होता है जो रनटाइम पर निष्पादित होता है।
drow नया पैच किया गया ELF बनाने के लिए निम्नलिखित कदम उठाता है:
sh_size और प्रोग्राम हेडर p_memsz/p_filesz को उपयोगकर्ता-प्रदत्त पेलोड के आकार से बढ़ाएंsh_offset और प्रोग्राम हेडर के p_offset को ठीक करें (पेलोड और एक छोटे "स्टेजर स्टब" के लिए जगह बनाने के लिए सेक्शन और सेगमेंट को नीचे ले जाएं)e_shoff, e_phoff, आदि)e_entry (ELF एंट्रीपॉइंट ऑफसेट) को संशोधित करके इंजेक्ट किए गए कोड को इंगित करेंउपयोगकर्ता-प्रदत्त पेलोड को इंजेक्ट करने के अलावा, drow एक छोटा कोड स्टब इंजेक्ट करता है जो पेलोड की शुरुआत में जोड़ा जाता है। यह स्टब पेलोड में कॉल करने के लिए डिज़ाइन किया गया है। यदि पेलोड कॉलर पर लौटने के लिए लिखा गया है, तो पेलोड लौटने के बाद स्टेजर _start में टेलकॉल करता है, निष्पादन को पुनर्स्थापित करता है ताकि प्रोग्राम इच्छित रूप से चल सके।
gcc और scons स्थापित करें। फिर निर्देशिका के रूट से scons चलाएं।
drow बनाने के अलावा, यह प्रोजेक्ट rappers_delight.bin नामक एक Linux x86-64 पेलोड भी बनाता है जो केवल stdout पर प्रिंट करता है। इसका उपयोग परीक्षण के लिए किया जा सकता है। वर्तमान में, drow केवल x86-64 को लक्षित करने वाली ELF64 फ़ाइलों के साथ काम करता है।
इस डोमेन में बहुत सारा ओपन सोर्स कार्य किया गया है। मैं आपको निम्नलिखित प्रोजेक्ट्स और संबंधित प्रकाशनों को भी देखने के लिए प्रोत्साहित करता हूं: