1 मेरा / बिन / ls -l शेलकोड कैसे काम करता है नल बाइट्स के साथ?

पर बनाया गया सवाल Sun, Mar 17, 2019 12:00 AM

मैं कमांड के तर्क के साथ कार्य निष्पादित करने के साथ एक शेलकोड निष्पादित करने की कोशिश कर रहा हूं यानी '/बिन /एलएस-एल'। मुझे पता है कि शेलकोड ठीक से काम नहीं कर सकता है अगर इसमें शून्य बाइट्स हैं।

लेकिन मेरे शेलकोड में अशक्त बाइट्स हैं जब मैं -l तर्क को स्टैक में धकेलता हूं और यह ठीक काम करता है। क्यों?

08048060 <_start>:
                                       ;Pushing /x00
8048060:       31 c0                   xor    eax,eax
8048062:       50                      push   eax

8048063:       68 6e 2f 6c 73          push   0x736c2f6e  ;Pushing //bin/ls
8048068:       68 2f 2f 62 69          push   0x69622f2f
804806d:       89 e3                   mov    ebx,esp
804806f:       50                      push   eax
8048070:       89 e2                   mov    edx,esp
8048072:       50                      push   eax
8048073:       68 2d 6c 00 00          push   0x6c2d    ; Pushing '-l' which has null bytes
8048078:       89 e6                   mov    esi,esp
804807a:       50                      push   eax
804807b:       56                      push   esi
804807c:       53                      push   ebx
804807d:       89 e1                   mov    ecx,esp
804807f:       b0 0b                   mov    al,0xb
8048081:       cd 80                   int    0x80
    
0
1 उत्तर                              1                         

शेलकोड में शून्य बाइट्स हो सकते हैं यदि वेक्टर जो उन्हें निष्पादन योग्य बफर में डालता है, उनके लिए अनुमति देता है।
सबसे ज्ञात वेक्टर एक एकल-बाइट नल-समाप्त स्ट्रिंग प्रति (जैसे 060035099110010103506262) है, ऐसे मामले में एक अशक्त बाइट स्रोत स्ट्रिंग के अंत को दर्शाएगा, जिससे पूर्ण शेलकोड की प्रतिलिपि को रोका जा सके। हालाँकि यदि कॉपी ऑपरेशन की एक निश्चित लंबाई (जैसे एक संरचित प्रोटोकॉल) है या यह सिंगल-बाइट स्ट्रिंग (उदा। Utf- *) का उपयोग नहीं कर रहा है, तो एक अशक्त बाइट प्रतिलिपि को जल्दी से रद्द नहीं कर सकता है।

बेशक, यदि आप अपना शेलकोड चला रहे हैं क्योंकि यह एक स्टैंडअलोन प्रोग्राम था, तो आप कॉपी चरण को पूरी तरह से छोड़ रहे हैं और किसी विशेष विचार की आवश्यकता नहीं है।

    
3
2019-03-17 13: 38: 57Z
strcpy
स्रोत रखा गया यहाँ