मुझे वर्षों से आपके साथ भी यही समस्या है।
सरल गैर-इंटरैक्टिव उपयोगों के लिए, मैं बाइनरी ब्लॉक एडिटर BBE का उपयोग करना पसंद करता हूं । BBE द्विआधारी है क्योंकि SED पाठ के लिए है, जिसमें इसकी पुरातन वाक्यविन्यास और सरलता भी शामिल है, हालांकि, इसमें बहुत सारी विशेषताएं हैं जो मुझे अक्सर चाहिए, इसलिए मुझे इसे अन्य उपकरणों के साथ संयोजित करना होगा। तो, BBE केवल एक आंशिक समाधान है। यह भी ध्यान दें कि BBE में सालों से कोई अपडेट या सुधार नहीं हुआ है।
बेशक , टेक्स्ट-आधारित टूल के साथ डेटा को संपादित करने xxd
से पहले और xxd -r
बाद में कोई भी उपयोग कर सकता है , लेकिन यह तब काम नहीं करेगा जब प्रश्न में डेटा बड़ा हो और यादृच्छिक एक्सेस की आवश्यकता हो, उदाहरण के लिए ब्लॉक डिवाइसों को संसाधित करते समय।
(नोट: विंडोज के लिए, कम से कम महंगी, मालिकाना WinHex स्क्रिप्टिंग भाषा है, लेकिन यह हमें कहीं भी नहीं मिलेगी।)
अधिक जटिल द्विआधारी संपादन के लिए, मैं आमतौर पर अजगर के रूप में अच्छी तरह से वापस आ जाता हूं, भले ही यह कभी-कभी बड़ी फ़ाइलों के लिए बहुत धीमा हो, जो कि मुख्य दोष है। मुझे उम्मीद है कि पिस्टन (पाइथन एलएलवीएम को अनुकूलित मशीन कोड के लिए संकलित करने के लिए नियोजित करेगा) किसी दिन पर्याप्त रूप से उपयोग करने योग्य होगा, या इससे भी बेहतर, कोई व्यक्ति एक नि: शुल्क कॉम्पैक्ट, तेज और बहुमुखी बाइनरी प्रोसेसिंग स्क्रिप्टिंग भाषा को डिजाइन और कार्यान्वित करेगा, जो AFAIK के लिए मौजूद नहीं है। यू * IX जैसे सिस्टम अभी तक।
अपडेट करें
मैं होमब्रे, ओपन सोर्स इंटेल x86 असेंबलर फ्लैट असेंबलर , या शॉर्ट के लिए फ़ेस का उपयोग करने के लिए भी होता हूं , जो कि सिर्फ एक असेंबलर की तुलना में अधिक विकसित हुआ।
यह एक शक्तिशाली, टेक्स्टब्लॉक-आधारित मैक्रो प्रीप्रोसेसर (अपने आप में एक ट्यूरिंग पूरी भाषा) है, जो बोरलैंड टर्बो एसेंबलर मैक्रो भाषा की परंपरा में एक वाक्यविन्यास के साथ है, लेकिन बहुत अधिक उन्नत है।
इसके अलावा, इसमें एक डेटा हेरफेर भाषा है, जो बाइनरी को मनमानी फ़ाइलों को शामिल करने की अनुमति देता है, सभी प्रकार के द्विआधारी और उस पर अंकगणितीय हेरफेर (केवल पूर्णांक) पर "आउटपुट समय" के रूप में करते हैं और परिणाम को आउटपुट फ़ाइल में लिखते हैं। इस डेटा मैनिप्युलेशन लैंग्वेज में स्ट्रेंथ कंट्रोल है और यह पूरी तरह से ट्यूरिंग है।
यह एक प्रोग्राम लिखने की तुलना में उपयोग करना बहुत आसान है जो सी में कुछ बाइनरी हेरफेर करता है और शायद अजगर में भी। साथ ही, यह अंधाधुंध तेजी से लोड होता है, क्योंकि यह एक छोटे आकार का निष्पादन योग्य है जिसमें लगभग कोई बाहरी निर्भरता नहीं है (2 संस्करण हैं: या तो इसे केवल libc की आवश्यकता है या यह सीधे लिनक्स कर्नेल ABI पर स्थिर निष्पादन योग्य के रूप में चल सकता है)।
यह कुछ रफ किनारों की तरह है
संगामिति का समर्थन नहीं
32 बिट x86 असेंबली में लेखन किया जा रहा है (हालांकि x86_64 पर काम करता है), आपको शायद qemu या इसी तरह के एमुलेटर की आवश्यकता है यदि आप इसे x86 या x86_64 के अलावा किसी और चीज़ पर चलाना चाहते हैं
यह शक्तिशाली मैक्रो प्रीप्रोसेसर भाषा है जो पूरी तरह से ट्यूरिंग है, इसका मतलब है कि आपको बेहतर लिस्प, हस्केल, एक्सएसएलटी जैसी भाषाओं के साथ कुछ अनुभव है, या शायद एम 4 सबसे अच्छा विकल्प होगा।
आउटपुट फ़ाइल में लिखे जाने वाले सभी डेटा को मेमोरी में "फ्लैट" बफर में किया जाता है, और यह बफर बढ़ सकता है लेकिन तब तक सिकुड़ता नहीं है जब तक आउटपुट फाइल लिखा नहीं जाता है और फेसम समाप्त हो जाता है। इसका मतलब यह है कि कोई केवल उन फ़ाइलों को अधिक से अधिक उत्पन्न कर सकता है जिनके पास आपके पास मुख्य स्मृति शेष है जो कि एक ही रन ऑफ़ फ़ासम में है।
डेटा केवल फ़ेस के प्रत्येक रन के लिए एकल आउटपुट फ़ाइल में लिखा जा सकता है
हाँ, यह homebrew है, हालांकि एक बहुत साफ और चालाक है
chain = ls["-a"] | grep["-v", "\\.py"] | wc["-l"]; chain()
आपको लगता है कि पर ध्यान दिया है?