शेल स्क्रिप्ट को बाइनरी एक्ज़ीक्यूटेबल में कैसे बदलें?


36

मैं अपनी शेल स्क्रिप्ट को बाइनरी एक्ज़ीक्यूटेबल में बदलना चाहता हूं ताकि कोई और इसे एडिट या रीड न कर सके। क्या इसे द्विआधारी निष्पादन योग्य में बदलने का कोई तरीका है?




@ l0b0 उस लिंक में दो कारणों का उल्लेख है। तीसरा कारण: आप इसे उन मशीनों पर चलाना चाहते हैं जिनमें इंटरप्रेटर स्थापित नहीं है (उदाहरण के लिए एक मशीन पर एक बैश स्क्रिप्ट चलाना जो केवल श ही है)। चौथा कारण: इसे किसी कारण के लिए सेटट्यूड रूट की आवश्यकता होती है (जैसे। एक स्क्रिप्ट जो उपयोगकर्ता को सुडो के बिना संस्करणों को माउंट करने देती है)।
कैलेमरियस

जवाबों:


42

shc वही है जो आप ढूंढ रहे हैं। इसे यहां प्राप्त करें: shc
Extract, cd in dir, makeऔर फिर ./shc -f SCRIPT। किया हुआ।

ऐसा करने के लिए आपको जो कुछ भी चाहिए, वह आपको यहां मिल जाएगा:
SHC Howto


8
+1 वाह, यह दिलचस्प है। बस इस बात से सावधान रहें कि यदि प्रक्रिया बिल्कुल वैसी ही है जैसा कि वर्णित है, यह पासवर्ड छिपाने का एक कमजोर तरीका है - यह अभी भी किसी ऐसे व्यक्ति द्वारा निकाला जा सकता है जो जानता है कि कैसे निष्पादन योग्य संरचनाएं हैं। हालांकि, यह आकस्मिक पर्यवेक्षकों से एक स्क्रिप्ट को अस्पष्ट करने के लिए बहुत प्रभावी होगा। अगर इस तरह से निष्पादित करने के लिए स्क्रिप्ट पहले से संकलित हैं, तो मुझे सीखने में दिलचस्पी होगी।
गोल्डीलॉक्स

21
ध्यान दें कि यह bash(या shआधारित bash) के साथ काम नहीं करता है , जैसा कि एक कर सकता है: env SHELLOPTS=verbose ./script.xस्क्रिप्ट की सामग्री को देखने के लिए। अन्य गोले के साथ-साथ बाईपास करने के लिए शायद आसान तरीके हैं।
स्टीफन चेज़लस

4
Shc man पेज से, "Unfortunatelly, यह आपको कोई गति सुधार नहीं देगा जैसा कि एक वास्तविक C प्रोग्राम होगा।" datsi.fi.upm.es/~frosal/source/shc.html
एडम

shc को 3.9.0 में अपडेट किया गया है: github.com/neurobin/shc
जाहिद

यद्यपि SHC आपको गति सुधार नहीं दे सकता है जिसकी आप आशा करते हैं, यह आपकी स्क्रिप्ट का बेहतर अनुवाद प्राप्त करने के लिए स्वयं SHC को हैक करने की संभावना प्रदान करता है। एक साफ शेल स्क्रिप्ट लिखना और फिर SHC को सुधारना खरोंच से C प्रोग्राम लिखने, या शेल स्क्रिप्ट को तेज बनाने के लिए अधिक उत्पादक हो सकता है।
काज

1

यदि यहां लक्ष्य अपनी शेल स्क्रिप्ट को छिपाना है, तो इसे पढ़ा या संशोधित नहीं किया जा सकता है, इसे निम्नलिखित वेबसाइट पर चिपकाने का प्रयास करें:

संयुक्त एन्क्रिप्शन और ऑबफिकेशन

जब आप इस साइट पर अपनी स्क्रिप्ट सबमिट करते हैं, तो आपके लिए एक ज़िप फ़ाइल तैयार की जाएगी। इस ज़िप फ़ाइल से एक स्टैंडअलोन निष्पादन योग्य बनाने के लिए निम्न चरणों का पालन करें।

  1. अपनी स्क्रिप्ट सबमिट करने के बाद, डाउनलोड लिंक पर राइट क्लिक करें
  2. अपने यूनिक्स होस्ट और wget या (कर्ल -ओ) डाउनलोड लिंक पर जाएं
  3. ज़िप फ़ाइल खोल दो
  4. cd EnSc एन्क्रिप्शन.com
  5. ./(your-script.sh)

चरण 5 स्वचालित रूप से स्क्रिप्ट को कॉन्फ़िगर करेगा और आपके लिए एक स्टैंडअलोन प्रति उत्पन्न करेगा। फिर आप इस स्टैंडअलोन कॉपी को अलग-अलग मेजबानों पर स्कैन कर सकते हैं या इसे वितरित कर सकते हैं, हालांकि आप चाहते हैं। ध्यान दें, एक बार एन्क्रिप्ट करने के बाद, आप अपनी स्क्रिप्ट का नाम नहीं बदल सकते। यह सुरक्षा कारणों से है।

आपके पास एक और विकल्प उपलब्ध है, यदि आपके पास समय है, तो अपने स्वयं के सुरक्षित ओफ़्स्क्यूशन एल्गोरिथ्म के साथ आना है। यदि आपकी स्क्रिप्ट पोर्टेबल होनी है, तो आपको उन उपकरणों का उपयोग करना होगा जो अधिकांश यूनिक्स प्रणालियों पर आसानी से उपलब्ध हैं ... अर्थात। खुलता है या base64। इसके लिए बहुत समय चाहिए। लेकिन अगर प्रेरणा वहाँ है, तो यह असंभव है कि आपकी लिपियों का अनावरण असंभव है या बहुत कम से कम, बहुत समय लगता है!


12
मैं ऐसी सेवा के खिलाफ सिफारिश करूंगा। आप कभी भी यह सुनिश्चित नहीं कर सकते हैं कि वे आपको इसे सौंपने से पहले किसी भी मैलवेयर को इंजेक्ट नहीं करते हैं। यहां तक ​​कि अगर निर्माता स्वयं ऐसा करने की कोशिश नहीं कर रहे हैं, तो विपक्षी गुप्त रूप से इस तरह के इंजेक्शन करने के लिए अपने सर्वर से समझौता कर सकते हैं।
ddnomad

-1

bzexe कन्वर्ट कर सकते हैं और फ़ाइल को भी कंप्रेस कर सकते हैं


1
मैं यह नहीं देखता कि यह मूल शेल स्क्रिप्ट प्राप्त करने के लिए फ़ाइल को निकालने से किसी को कैसे रोकेगा, जिसे उपयोगकर्ता रोकना चाहता था। संपीड़न कुछ भी नहीं छिपा रहा है।
Kusalananda
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.