2012-06-13 12 views
8

पर स्थिर लाइब्रेरी में शामिल हों यह पहली बार है जब मैं स्टैक ओवरफ्लो पर पूछ रहा हूं और मैं बेहोश हूं।एक मैक-ओ बाइनरी में LC_LOAD_DYLIB कमांड को कैसे सम्मिलित करें या किसी मौजूदा बाइनरी (आईओएस)

मेरा काम एक आईआईएल डिवाइस के लिए पहले से मौजूद निष्पादन योग्य के लिए एक डाइलिब लोड करना या स्थैतिक lib में शामिल होना है।

मैं स्विंगिंग शुरू करने के लिए static void __attribute__((constructor)) initialize(void) का उपयोग करूँगा। यह निष्पादन योग्य घर एंटरप्राइज़ एपस्टोर में है इसलिए मुझे सेब ऐपस्टोर के माध्यम से जाने की आवश्यकता नहीं है (क्योंकि वे इसे अस्वीकार कर देंगे)।

इसका कारण ग्राहक से उनकी मौजूदा आईपीए और उनकी हस्ताक्षर कुंजी लेना है और डेवलपर हस्तक्षेप की आवश्यकता के बिना उनके आवेदन में एक नई कार्यक्षमता जोड़ना है।

एक ऐसी कंपनी है जिसे नुकोना कहा जाता है। आप फिल्म यहाँ देख सकते हैं: https://www.youtube.com/watch?feature=player_embedded&v=z9rrOB6lOxY

मैं आपको बता सकता है कि मैं एक DYLD_INSERT_LIBRARIES साथ plist फ़ाइल के अंदर LSEnvironment डालने की कोशिश की लेकिन यह पता चला LSEnvironment एक IOS आवेदन के खिलौने के डिब्बे में कोई असर दिखाई नहीं देता।

मैंने निर्भरता में से किसी एक को बदलने और इसे मेरे डाइलिब के साथ बदलने के लिए install_name_tool भी कोशिश की (जिसमें वह निर्भरता भी है)। यह जानकारी के बिना दुर्घटनाग्रस्त क्यों है।

जाहिर है, अगर मैं एक्सकोड में एक परीक्षण अनुप्रयोग में डाइलिब जोड़ता हूं और फिर से संकलित करता हूं तो यह पूरी तरह से काम करता है जो दिया जाता है। हालांकि, यह ऐसा कुछ है जिसे मैं नहीं पूछ सकता, उदाहरण के लिए, एक कंपनी के एक प्रशासक। पुनर्निर्माण ग्राहकों को इस lib का उपयोग करने से रोक सकता है।

यहां एक संबंधित लिंक है जो मुझे स्टैक ओवरफ़्लो पर मिला है लेकिन ओएसएक्स के लिए और मुझे आईओएस के लिए इसकी आवश्यकता है। How to insert a LC_LOAD_DYLIB command into a Mach-O binary (OSX)

केवल एक चीज मैं बंद में सोच सकते हैं द्विआधारी लोड आदेशों कुछ कैसे संपादित करने के लिए है, लेकिन मैं कैसे और यह करने के लिए कैसे खाते में स्थानांतरण टेबल आदि लेने यकीन नहीं है ...

किसी भी विकल्प स्वागत है।

आपके समय के लिए धन्यवाद।

+2

बिल्कुल वही चीज़ करते की कोशिश कर रहा। यदि आप कहीं भी मिलते हैं तो मैं एक सूचक की सराहना करता हूं। – Rick

उत्तर

6

मैं मुक्त-स्रोत optool जो करता है वास्तव में यह (मैं iOS पर यह परीक्षण नहीं किया है, लेकिन यह काम करना चाहिए। एक मुद्दा खोलें यदि आप समस्या है)

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