OSX में निष्पादन योग्य ELF बायनेरिज़


11

मेरे पास सीटीएफ से संबंधित प्रश्न हैं और मैं सोच रहा था कि क्या कोई मुझे सही दिशा में ले जा सकता है।

मैं OSX Yosemite पर काम करता हूं और मैं कुछ wargames और पुराने CTF चुनौतियों से गुजर रहा था। मेरा लक्ष्य चुनौती का ईएलएफ बाइनरी को "मूल रूप से" अपने इटर्मा में निष्पादित करने के बाद है (क्योंकि मैं इसे स्थानीय स्तर पर लागू करता हूं) हालांकि मुझे एहसास है कि अंतर्निहित तंत्र द्वारा केवल एमएसीएच बायनेरिज़ को निष्पादित किया जा सकता है।

फिर भी, एमुनेशन (जैसे QEMU), या किसी अन्य विधि के माध्यम से ऐसा संभव है, ताकि बाइनरी को चलाने के लिए पूरे वीएम को खोलने से बचा जा सके?

पहले ही, आपका बहुत धन्यवाद।


यह मुद्दा सुरक्षा के लिए प्रासंगिक है क्योंकि यह ज्यादातर सुरक्षा CTF और wargames में पाया जाता है (यही कारण है कि मैं इस पर अटक गया)। मेरा मानना ​​है कि सुरक्षा समुदाय के पास इस विशिष्ट विषय के आने की अधिक संभावना है। मैं हालांकि वहाँ भी कोशिश करूँगा।
nilminus

3
आपका प्रश्न सुरक्षा के बारे में नहीं है, यह बायनेरी चलाने के बारे में है।
नील स्मिथलाइन

जवाबों:


2

अपने दम पर, ELF बायनेरिज़ का मतलब कुछ भी नहीं है। कुछ बायनेरिज़ अकेले चलते हैं - आपको पुस्तकालयों, एपीआई और एबीआई और अन्य चमकदार चीजों का समर्थन करने की आवश्यकता होगी।

QEMU को चलाते समय आपको अभी भी सबसे अधिक OS की आवश्यकता होती है - बस यह कि इसके मेजबान सिस्टम के साथ निकटता से जुड़ा हुआ नहीं है, मुझे संदेह है।

सिद्धांत रूप में यदि आपके पास 'वाइन' जैसा कुछ था, लेकिन एक लिनक्स (या अन्य * निक्स शैल ओएस) के रूप में कार्य करना -> ओएस एक्स संगतता परत आपको वह मिल सकता है जो आप चाहते हैं, लेकिन ऐसा जानवर मौजूद नहीं है।

एसओ नहीं, आप ओएस एक्स पर एक मध्यस्थ, पूर्वनिर्मित ईएलएफ बाइनरी नहीं चला सकते


1
यह सवाल एक सुरक्षा परिदृश्य का संबंध रखता है जो सुपरसुसर स्पेस में जगह नहीं देता है। एक स्थिर द्विआधारी की कल्पना करें (गतिशील रूप से जुड़े होने के बजाय छवि में संकलित) कि एक हमलावर एक लक्ष्य प्रणाली पर जगह और चलाना चाहता है (यह एक मूल CTF सुरक्षा खेल परिदृश्य है)। हालांकि, एबीआई (जैसे syscalls) के बारे में आपकी बात एक उचित है, बाहरी कामों की जरूरत नहीं होगी। आप सामान्य मामले में सही हैं, लेकिन यह प्रश्न विशेष रूप से सामान्य मामले के बारे में नहीं है। imho इसे सुरक्षा साइट से स्थानांतरित नहीं किया जाना चाहिए था।
क्विक्सोटिक

2

इसका उत्तर संभवतः है: यह निर्भर करता है कि ईएलएफ फ़ाइल कैसे उत्पन्न हुई।

इस लेख , और इस वाक्य के आधार पर :

  • एक आम गलतफहमी यह है कि ईएलएफ फाइलें केवल निष्पादन योग्य के लिए हैं ...
  • हमने पहले ही देखा है कि उन्हें आंशिक टुकड़ों के लिए इस्तेमाल किया जा सकता है ...

सभी ईएलएफ फ़ाइलों को निष्पादित नहीं किया जाएगा, भले ही आपके पास उचित सेटअप हो।

इस लेख के आधार पर , एक समूह pf ELF फाइल है जिसे FatELF कहा जाता है:

  • FatELF एक फ़ाइल स्वरूप है जो विभिन्न आर्किटेक्चर के लिए एक फ़ाइल में कई ELF बायनेरिज़ एम्बेड करता है
  • लिनक्स और फ्रीबीएसडी में काम करने वाली एक फ़ाइल को शिप करें

Apple के इस पेज पर आधारित

  • OS X कर्नेल का BSD भाग मुख्य रूप से FreeBSD से लिया गया है

इसलिए, मैक ओएस एक्स के लिए, फैटेलएफ "उत्तर की शुरुआत" है।

और अंत में, इस पृष्ठ पर आधारित :

ऑब्जेक्ट फ़ाइल कनवर्टर

इस उपयोगिता का उपयोग सभी 32-बिट और 64-बिट x86 प्लेटफार्मों के लिए COFF / PE, OMF, ELF और Mach-O स्वरूपों के बीच ऑब्जेक्ट फ़ाइलों को परिवर्तित करने के लिए किया जा सकता है। ऑब्जेक्ट फ़ाइलों में प्रतीक नामों को संशोधित कर सकते हैं। प्लेटफार्मों में फ़ंक्शन पुस्तकालयों का निर्माण, संशोधित और परिवर्तित कर सकते हैं । ऑब्जेक्ट फ़ाइलों और निष्पादन योग्य फ़ाइलों को डंप कर सकते हैं। इसमें SSE4, AVX, AVX2, AVX512, FMA3, FMA4, XOP और शूरवीरों के कॉर्नर अनुदेश सेटों का समर्थन करने वाला एक बहुत अच्छा डिस्सेम्बलर भी शामिल है। स्रोत कोड शामिल (GPL)।

आपके पास जो आप चाहते हैं उसे सक्रिय करने का मौका है।

पुनश्च: XBinary के बारे में एक और पृष्ठ है , मैंने इसका विश्लेषण नहीं किया।

यह दस्तावेज़ XBinary पर चर्चा करता है, एक नया सॉफ्टवेयर जो आपको मैक एक्स के लिए मनमाने ढंग से द्विआधारी प्रारूपों में फ़ाइलों को निष्पादित करने के लिए कर्नेल-स्तर समर्थन जोड़ने देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.