मैं एक प्रश्न में इसके माध्यम से आया था - दुनिया में क्या है एक .el8 फ़ाइल? । मैं उत्सुक हूं कि @slhck ने कैसे निर्धारित किया कि प्रश्न में फ़ाइल सॉफ़्टवेयर की ओर इशारा कर रही है - eLecta
मैं एक प्रश्न में इसके माध्यम से आया था - दुनिया में क्या है एक .el8 फ़ाइल? । मैं उत्सुक हूं कि @slhck ने कैसे निर्धारित किया कि प्रश्न में फ़ाइल सॉफ़्टवेयर की ओर इशारा कर रही है - eLecta
जवाबों:
मेरा अनुमान:
यह सबसे अधिक संभावना है कि "कच्ची बाइनरी डंप" वास्तव में एक हेक्सडंप का मतलब था - एक लिस्टिंग जो प्रत्येक बाइट को फ़ाइल में हेक्साडेसिमल संख्या के रूप में दिखाती है, बाइट के बजाय (या इसके अलावा)।
यह आमतौर पर इस तरह दिखता है:
...
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
या एचएक्सडी।
फ़ाइल बस एक पाठ संपादक में खोला गया था। Vi में इस मामले में , जो शायद विम का लिंक था । नियमित ASCII वर्ण दिखाए गए। ^@
संकेत द्वारा प्रतिस्थापित किए जाने योग्य वर्ण थे ।
इसका लक्ष्य यह देखना था कि फ़ाइल में कोई मैजिक नंबर है या नहीं। इस मामले में, फ़ाइल में कोई भी नहीं था, लेकिन इसमें अस्थायी निर्देशिका का पथ निहित था जहां रिकॉर्डिंग बनाई गई थी। हम किस्मत से निकले क्योंकि इसमें कार्यक्रम का नाम था।
एक और उन्नत संस्करण एक हेक्स संपादक का उपयोग करना होगा, या xxd के साथ एक अलग प्रारूप में डेटा दिखाने के लिए vi [m] को कॉन्फ़िगर करना होगा ।
इस प्रश्न का उत्तर देने के लिए कि आपकी पोस्ट का विषय कैसे पूछता है (आप किसी फ़ाइल का 'कच्चा बाइनरी डंप' कैसे प्राप्त करते हैं?)।
फाइल 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
@slhck ने सवाल देखा, जिसमें एक vi
डंप था। यहाँ उस भाग का उद्धरण:
^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ Ò½ ^ @ ^ @; C: \ Electa \ सर्वर \ TempRecordings \ U734806R4970S3962792726.el8 ¢ s³wÕs³w ^ @ ^ @ ^ @ ^ @ नौकरी (डी
विंडोज पर, एचएक्सडी के साथ एक बाइनरी डंप प्राप्त करें । या आप सिर्फ नोटपैड में फ़ाइल खोलने का प्रयास कर सकते हैं। ऐसा ही * निक्स सिस्टम पर भी लागू होता है।