सामान्य रूप से फ्रीबीएसडी और * निक्स सिस्टम के बारे में कुछ और जानने के लिए, मैं डेफॉन 17 कैप्चर द फ्लैग गेम से द्विआधारी को देखना शुरू कर रहा हूं। अभी, मैं ट्यूकोड बाइनरी को उलट रहा हूं।gdb ब्रेकपॉइंट्स को मार नहीं रहा
tucod: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 7.2, dynamically linked (uses shared libs), FreeBSD-style, stripped
कुछ अन्य संभवतः उपयोगी कुछ संक्षिप्त स्थिर विश्लेषण से प्राप्त जानकारी है कि tucod है बंदरगाह 0xDEAD पर बांध (प्यारा, हाँ?) और यदि आप इसे एक विशिष्ट पासवर्ड देना ("HANGEMHIGH: यहाँ tucod पर कुछ संभवतः उपयोगी जानकारी है ! ") यह आपके साथ हैंग-मैन का एक खेल खेलेंगे।
मुझे जो समस्या आ रही है वह यह है कि मैं जीडीबी में अपने ब्रेकपॉइंट्स को मार नहीं रहा हूं। विशेष रूप से, जिस ब्रेकपॉइंट को मैं एक्सेस करने का प्रयास कर रहा हूं वह उस कोड में है जो क्लाइंट कनेक्शन को संभालता है। ब्रेकपॉइंट्स के बिना, कोड अपेक्षित के रूप में निष्पादित करता है। जब मैं उस कोड पर ब्रेकपॉइंट सेट करता हूं, तो बच्चा निकलता है (जीडीबी में तोड़ने की बजाए, जैसा कि अपेक्षित है)। अगर मैं बच्चे से सर्वर पर फंसे से पहले ब्रेकपॉइंट्स सेट करता हूं, तो मैं उनको ठीक कर सकता हूं लेकिन "जारी रखने" के बाद बच्चा मेरे कनेक्शन को संसाधित नहीं करता है (यानी, यह मुझे पासवर्ड के लिए नहीं पूछेगा या हैंग-मैन खेलेंगे)।
डेमॉन कांटे जब यह एक नया कनेक्शन प्राप्त करता है के बाद से, मैं gdb बताने के लिए इस आदेश के साथ बच्चे का पालन करने का प्रयास करें:
(gdb) set follow-fork-mode child
लेकिन उसके बाद कांटा के बाद दिए गए निर्देशों का एकल कदम, यह इस दिखाई देने वाले काम नहीं कर रहा है
मैं signal
के लिए कॉल की तलाश की कोशिश की करने के बाद, यह सोच कर वे एक कस्टम SIGINT हैंडलर (या समान), लेकिन signal
के लिए एक ही कॉल कि मैं हैंडल SIGCHLD देख सकते हैं लागू किया।
gdb में मेरे ब्रेकप्वाइंट वर्तमान में इस तरह दिखता है:
(gdb) info breakpoints
Num Type Disp Enb Address What
1 breakpoint keep y 0x080497d0
और 0x080497d0
पता मैं ग्राहक प्रसंस्करण कोड में पर तोड़ने के लिए चाहते हैं।
मैं * निक्स सिस्टम पर सॉफ़्टवेयर का विश्लेषण करने के लिए नया हूं और कुछ पॉइंटर्स का उपयोग कर सकता हूं। समस्या निवारण के बारे में मुझे और कैसे जाना चाहिए क्यों जीडीबी मेरे ब्रेकपॉइंट्स को नहीं मारा जाएगा? या क्या कुछ प्रमुख है जो मैं सिर्फ देख रहा हूं?
बाइनरी प्रथम हाथ देखने में रुचि रखने वालों के लिए सभी गेम बाइनरी के साथ torrent उपलब्ध है।
धन्यवाद! इस के लिए नियोजित कार्य-आसपास बस बाइनरी को पैच करना था और माता-पिता को बच्चे के हिस्से को निष्पादित करना था। मेरे लिए, सोने के लिए कॉल जोड़ने की कोशिश करने से यह आसान है, क्योंकि मैं स्रोत के बिना हूं। लेकिन जो हो रहा था उसका एक स्पष्टीकरण वह था जिसे मैं वास्तव में ढूंढ रहा था। एक बार फिर धन्यवाद। – mrduclaw
@ निकोलई टूटी हुई लिंक – nouveau