2012-05-07 14 views
5

ईएलएफ प्रारूप आयातित कार्यों के नाम कहां रखता है? क्या पीई निष्पादन योग्यों के लिए सभी आयात नामों की गणना करना हमेशा संभव है?ईएलएफ बाइनरी में आयात नाम

उदाहरण के लिए, यदि एक बाइनरी printf का उपयोग कर रही है, तो यह केवल बाइनरी के स्थैतिक विश्लेषण द्वारा ही यह बताना संभव है?

उत्तर

7

ईएलएफ में उन्हें अपरिभाषित प्रतीक कहा जाता है। आप से अपरिभाषित प्रतीकों की सूची देख सकते हैं:

  • nm -D <file>|grep -w U

  • objdump -T <file>|grep "\*UND\*"

ELF फ़ाइलें निर्दिष्ट नहीं करते हैं जो प्रतीक हैं, जो लाइब्रेरियों के आते हैं; यह ईएलएफ बाइनरी में जोड़ने के लिए साझा पुस्तकालयों की एक सूची जोड़ता है, और लिंकर को पुस्तकालयों में प्रतीकों को खोजने देता है।

+0

क्या हम साझा लाइब्रेरी से प्राप्त नहीं कर सकते हैं हमें उन कार्यों को मिला? –

+0

ध्यान दें कि एक परिभाषित प्रतीक भी आयात किया जा सकता है। आपको कौन से प्रतीकों का उपयोग किया जाता है यह देखने के लिए आपको स्थानांतरण तालिकाओं को देखने की आवश्यकता है। – ysdx

+0

@AnwarMohamed: नहीं क्योंकि वे ईएलएफ में एक विशिष्ट साझा पुस्तकालय से बंधे नहीं हैं। – ysdx

संबंधित मुद्दे