आप किसी फ़ाइल का 'कच्चा बाइनरी डंप' कैसे प्राप्त करते हैं?


0

मैं एक प्रश्न में इसके माध्यम से आया था - दुनिया में क्या है एक .el8 फ़ाइल? । मैं उत्सुक हूं कि @slhck ने कैसे निर्धारित किया कि प्रश्न में फ़ाइल सॉफ़्टवेयर की ओर इशारा कर रही है - eLecta


2
"eLecta" पोस्ट की गई फ़ाइल सामग्री की अंतिम पंक्ति में स्पष्ट रूप से दिखाई देती है। जानकारी के उस छोटे से हिस्से को लेना और खोज करना मौजूदा सॉफ़्टवेयर की ओर इशारा करता है। यह संभवतः तकनीकी रूप से अधिक विस्तृत नहीं था, लेकिन किसी के लाभ के लिए उपलब्ध जानकारी का उपयोग करने में सक्षम होना अपने आप में एक अत्यधिक महत्वपूर्ण कौशल है :-)। इस मामले में "बाइनरी डंप" इस प्रकार केवल उन कच्चे सामग्रियों की ओर इशारा करना चाहिए जो पोस्टर ने कहा था कि विम में दिखाया गया है।
डैनियल एंडरसन

कई "हेक्स डंप" या "हेक्स ब्राउज़र" ऐप्स में से किसी एक को प्राप्त करें। मैं hhdsoftware.com (विंडोज पर ) से (फ्री) "हेक्स एडिटर नियो" का काफी शौकीन हूं ।
डैनियल आर हिक्स

जवाबों:


4

मेरा अनुमान:

यह सबसे अधिक संभावना है कि "कच्ची बाइनरी डंप" वास्तव में एक हेक्सडंप का मतलब था - एक लिस्टिंग जो प्रत्येक बाइट को फ़ाइल में हेक्साडेसिमल संख्या के रूप में दिखाती है, बाइट के बजाय (या इसके अलावा)।

यह आमतौर पर इस तरह दिखता है:

...
00000a0: 6d65 3233 3a6d 6564 6961 7769 6b69 2d31  me23:mediawiki-1
00000b0: 2e31 352e 312e 7461 722e 677a 3132 3a70  .15.1.tar.gz12:p
00000c0: 6965 6365 206c 656e 6774 6869 3332 3736  iece lengthi3276
00000d0: 3865 363a 7069 6563 6573 3636 3230 3ae9  8e6:pieces6620:.
00000e0: b08a 7ef8 00f8 d8b4 a53e 15e3 6bd6 e2c4  ..~......>..k...
00000f0: a7e4 1aa6 c67f 7106 cd3e 1672 decc b5c7  ......q..>.r....
0000100: 455c a86d 4751 379a f59f 3665 1e8c 128a  E\.mGQ7...6e....
0000110: dec4 e670 ca0f e960 353b 48fe 3dfb c455  ...p...`5;H.=..U
0000120: f940 e102 13d6 8385 1655 4642 3e83 060b  .@.......UFB>...
0000130: 585f d353 2ef2 07ff d9e3 aeb6 7329 2192  X_.S........s)!.
0000140: e0a9 7d75 390f 3c16 def6 d806 469e af64  ..}u9.<.....F..d
...

जिसमें प्रत्येक पंक्ति में एक शुरुआत की स्थिति है, हेक्स में 16 बाइट्स, और "सुरक्षित" रूप में 16 बाइट्स (जो कि 0x20 और 0x7f के बीच बाइट्स सीधे दिखाए गए हैं, बाकी को .'s' से बदल दिया गया है )।

लिनक्स पर, xxd, hd, hexdump -C, या के विभिन्न मंत्र odइस्तेमाल किया जा सकता। विंडोज पर, कई बाइनरी संपादकों जैसे कि hiewया एचएक्सडी।


1
मैं मानता हूं कि मैंने वहां गलत शब्दावली का इस्तेमाल किया है। बाइनरी कुछ पूरी तरह से अलग होती।
slhck

मुझे लगता है कि आप जानते हैं लेकिन सिर्फ स्पष्ट होने के लिए, ऐसा लगता है कि ओडी बाइनरी प्रदर्शित नहीं करता है
बार्लोप

3

फ़ाइल बस एक पाठ संपादक में खोला गया था। Vi में इस मामले में , जो शायद विम का लिंक था । नियमित ASCII वर्ण दिखाए गए। ^@संकेत द्वारा प्रतिस्थापित किए जाने योग्य वर्ण थे ।

इसका लक्ष्य यह देखना था कि फ़ाइल में कोई मैजिक नंबर है या नहीं। इस मामले में, फ़ाइल में कोई भी नहीं था, लेकिन इसमें अस्थायी निर्देशिका का पथ निहित था जहां रिकॉर्डिंग बनाई गई थी। हम किस्मत से निकले क्योंकि इसमें कार्यक्रम का नाम था।

एक और उन्नत संस्करण एक हेक्स संपादक का उपयोग करना होगा, या xxd के साथ एक अलग प्रारूप में डेटा दिखाने के लिए vi [m] को कॉन्फ़िगर करना होगा


3

इस प्रश्न का उत्तर देने के लिए कि आपकी पोस्ट का विषय कैसे पूछता है (आप किसी फ़ाइल का 'कच्चा बाइनरी डंप' कैसे प्राप्त करते हैं?)।

फाइल a.aमें 'ए' अक्षर है, जिसके बाद सीआर एलएफ है

C:\Program Files\Vim\vim73
>type a.a
a

xxd -b(बाइनरी) समर्थन -ps(सादा) नहीं करता है , इसलिए आपको कुछ जंक ( 0000000:और a..) मिलता है

C:\Program Files\Vim\vim73
>xxd -b a.a
0000000: 01100001 00001101 00001010                             a..

यहाँ समाधान है:

xxd -b a.a | sed -r "s/\d32{3,}.*//g" | sed "s/.*://" | sed "s/\d32//g"

यह उत्तपन करता है

011000010000110100001010

नीचे काम कर रहा है।

आइए देखें कि कैसे 0000000: 01100001 00001101 00001010 a..रचना की गई है। ठीक है, इसलिए बड़े अंतराल रिक्त स्थान का एक गुच्छा है।

C:\Program Files\Vim\vim73
>xxd -b a.a | od -tx1
0000000 30 30 30 30 30 30 30 3a 20 30 31 31 30 30 30 30
0000020 31 20 30 30 30 30 31 31 30 31 20 30 30 30 30 31
0000040 30 31 30 20 20 20 20 20 20 20 20 20 20 20 20 20
0000060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0000100 61 2e 2e 0d 0a
0000105

मैंने रिक्त स्थान के लंबे अनुक्रम को हटा दिया और उन सभी का पालन किया। तो यह वहाँ हो रहा है:

C:\Program Files\Vim\vim73
>xxd -b a.a | sed -r "s/\d32{3,}.*//g"
0000000: 01100001 00001101 00001010

बृहदान्त्र को शामिल और हटाने के लिए 0s निकालें और किसी अन्य स्थान को हटा दें:

C:\Program Files\Vim\vim73
xxd -b a.a | sed -r "s/\d32{3,}.*//g" | sed "s/.*://"
 01100001 00001101 00001010

C:\Program Files\Vim\vim73
>xxd -b a.a | sed -r "s/\d32{3,}.*//g" | sed "s/.*://" | sed "s/\d32//g"
011000010000110100001010

और इसलिए एक उपाय है

C:\Program Files\Vim\vim73
>xxd -b a.a | sed -r "s/\d32{3,}.*//g" | sed "s/.*://" | sed "s/\d32//g"
011000010000110100001010

XXD में उपलब्ध है विम 7.x और sed में उपलब्ध है GnuWin32


2

@slhck ने सवाल देखा, जिसमें एक viडंप था। यहाँ उस भाग का उद्धरण:

^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ Ò½ ^ @ ^ @; C: \ Electa \ सर्वर \ TempRecordings \ U734806R4970S3962792726.el8 ¢ s³wÕs³w ^ @ ^ @ ^ @ ^ @ नौकरी (डी

विंडोज पर, एचएक्सडी के साथ एक बाइनरी डंप प्राप्त करें । या आप सिर्फ नोटपैड में फ़ाइल खोलने का प्रयास कर सकते हैं। ऐसा ही * निक्स सिस्टम पर भी लागू होता है।

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