मैं आम तौर पर के साथ अपने कार्यक्रम चलाते हैं।gdb पाइप इनपुट (नहीं तर्क) के साथ डिबगिंग
यदि यह सिर्फ एक आदेश तर्क थे, मैं ऐसा करके gdb खोल सकते:
gdb ./vuln_prog
run $(perl -e 'print "A"x200')
लेकिन, मेरा परिदृश्य एक आदेश तर्क इनपुट नहीं है, बल्कि (? STDIN)। मैं इसे जीडीबी में कैसे डीबग करूं? मैंने विकल्पों का एक गुच्छा करने की कोशिश की है, लेकिन वास्तव में कुछ भी काम नहीं करता है।
मैं आमतौर पर प्रक्रिया पर जीडीबी चलाता हूं, और जब यह उपयोगकर्ता इनपुट के लिए संकेत देता है, तो इसे टाइप करें, हालांकि मैं सिर्फ "ए" टाइप नहीं करना चाहता हूं। मैं सभी वर्णों को \ x00- \ xff से टाइप करना चाहता हूं, जिसे मैं टाइप नहीं कर सकता।
आप 'get' का उपयोग क्यों कर रहे हैं? मेरा मतलब है कि कभी-कभी यह स्वीकार्य है (जैसे कि आप कुछ परीक्षण करने के लिए एक त्वरित प्रोग्राम लिख रहे हैं, या यदि प्रोग्राम केवल विश्वसनीय इनपुट के साथ चलाया जाएगा) लेकिन मैं उत्सुक हूं। – flarn2006
यह मेरा कोड नहीं था। यह एक मजेदार रिवर्स इंजीनियरिंग चुनौती के लिए था, जहां कोड प्रदान किया गया था। – mandreko
ओह ठीक है। जानबूझकर इस्तेमाल किया गया था * क्योंकि * यह चुनौती के संभावित समाधान के हिस्से के रूप में कमजोर था? – flarn2006