2009-08-20 9 views
6

मैं आईफोन के लिए obfuscated-openssh संकलित करने (क्रॉस-) करने की कोशिश कर रहा हूं, और मैं कुछ समस्याओं में भाग रहा हूं। मैं निर्माण कॉन्फ़िगर करने के लिए इस का उपयोग कर रहा:आईफोन के लिए ओपनएसएसएच संकलित?

./configure --host=arm-apple-darwin CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-gcc-4.0.1 \ 
CFLAGS="-arch armv6 -pipe -std=c99 -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk/usr/include \ 
-L/Users/ben/iphonelib -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -Wreturn-type \ 
-Wunused-variable -fmessage-length=0 -fvisibility=hidden \ 
-miphoneos-version-min=2.0 -gdwarf-2 -mthumb \ 
-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk" \ 
CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp \ 
AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar 

यह काम नहीं करता है, हालांकि, netinet/in_systm.h और openssl/bn.h सहित कई हेडर फाइलें, ढूँढने में सक्षम नहीं किया जा रहा है के बारे में शिकायत। क्या किसी के पास कोई विचार है कि बिल्ड को कैसे खत्म किया जाए?

उत्तर

8

in_systm.h आईफोन पर उपलब्ध नहीं है। यह केवल कुछ प्रकारों को परिभाषित करता है, और इसमें शामिल अन्य टुकड़े भी उपलब्ध हैं। तो आप हेडर के मैक संस्करण को बिल्ड पेड़ में कॉपी करने और इसे इंगित करने में सक्षम हो सकते हैं। ("in_systm.h का पता लगाएं" इन प्रकार की चीजों को खोजने का एक अच्छा तरीका है।)

आप इस तरह की कई और समस्याओं में बहुत अच्छी तरह से चल सकते हैं, लेकिन in_systm.h को संबोधित करने का तरीका है।

+1

मुझे लगता है कि यह काम कर सकता है, लेकिन वास्तव में कई शीर्षलेख फ़ाइलें गायब हैं, और मैं एक ही समय में सभी समस्याओं को हल करने के लिए एक साफ तरीका ढूंढ रहा हूं। –

+4

आप सामान्य रूप से एक चरण समाधान खोजने की संभावना नहीं है। आईफोन पर सभी ओएसएक्स एपीआई उपलब्ध नहीं हैं। आईफोन में एक जटिल ढांचे को पोर्ट करना अक्सर मुश्किल होता है (हालांकि आम तौर पर संभव है)। आपकी सबसे अच्छी शर्त "openssh iphone" की खोज करना है और देखें कि दूसरों ने पहले समस्या पर हमला कैसे किया है। अधिकांश काम सर्वर बनाने में है (जिसका आमतौर पर फोन जेलब्रैकिंग का मतलब है)। मुझे लगता है कि आप इस मामले में एक ग्राहक बना रहे हैं? अंतर्निहित पोर्टिंग मुद्दे समान होना चाहिए, हालांकि। लेकिन मैं वादा नहीं कर सकता कि कोई भी "इस ध्वज को सेट करें और यह काम करेगा" समाधान। Openssh जैसे कोड के लिए, यह असंभव है। –

+0

मैंने व्यापक Googling किया था, लेकिन कॉन्फ़िगरेशन विकल्पों को खोजने में असमर्थ था जो दूसरों ने उपयोग किया है। (और आप सही हैं, मैं क्लाइंट को संकलित करने का प्रयास कर रहा हूं।) –

2

ओपेन्सश openssl पुस्तकालयों पर निर्भर करता है। आपको शायद पहले इसे बनाने की आवश्यकता होगी।

मुझे हाल ही में एक एम्बेडेड सिस्टम में एसएसएच समर्थन जोड़ना पड़ा और Dropbear का उपयोग किया गया। ओपनश की तुलना में उठना और दौड़ना बहुत आसान था। इसने हमें 300k निष्पादन योग्य के साथ एसपीपी, एसएसएच, और एसएसडीडी समर्थन दिया। माना जाता है कि, केवल एसएसएच के लिए आप इसे ~ 110 के नीचे ले जा सकते हैं।

1

साइडिया (और एपीटी के साथ) के साथ एक भंडार उपलब्ध है जहां ओपनएसएसएच उपलब्ध है: Telesphoreo। ओपनएसएसएच सर्वर पोर्ट की गई टीम को जानें, जिसका अर्थ है कि उन्होंने लक्ष्य प्लेटफॉर्म पर संकलन करने के लिए स्रोत कोड संशोधित किया है।

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