كيف تصنع هيكسدومب من ملف أو سلسلة من النص

المقدمة

تفريغ سداسي عشرية هو عرض الست عشري للبيانات. قد ترغب في استخدام رقم سداسي عشري عند تصحيح أحد البرامج أو إجراء هندسة عكسية لأحد البرامج.

على سبيل المثال ، تحتوي العديد من تنسيقات الملفات على أحرف سداسي عشري محددة للدلالة على نوعها. إذا كنت تحاول قراءة ملف باستخدام برنامج ولسبب ما لا يتم تحميله بشكل صحيح ، فقد يكون أن الملف ليس بالتنسيق الذي تتوقعه.

إذا كنت ترغب في معرفة كيفية عمل البرنامج ولم يكن لديك الكود المصدري أو جزء من البرنامج الذي يقوم بتعديل الكود للمهندسين ، فيمكنك البحث في ملف تفريغ السداسي العشري لمحاولة عمل ما يحدث.

ما هو سداسي عشري؟

أجهزة الكمبيوتر تفكر في ثنائي . تتم الإشارة إلى كل حرف ورقم ورمز من خلال قيم ثنائية ثنائية أو متعددة.

البشر ، ومع ذلك ، تميل إلى التفكير في العشرية.

الآلاف المئات عشرات وحدات
1 0 1 1

وبوصفنا البشر ، فإن أعدادنا الأدنى تسمى الوحدات وتمثل الأرقام من 0 إلى 9. وعندما نصل إلى 10 سنقوم بإعادة تعيين عمود الوحدات إلى 0 وإضافة 1 إلى عمود العشرات (10).

128 64 32 16 8 4 2 1
1 0 0 1 0 0 0 1

في الثنائية ، يمثل الرقم الأقل 0 و 1 فقط. عندما نتجاوز 1 ، نضع 1 في عمود 2 و 0 في العمود 1. عندما تريد تمثيل 4 ، يمكنك وضع 1 في العمود 4 وإعادة تعيين العمود 2 و 1.

لذلك لتمثل 15 سيكون لديك 1111 التي تعني 1 ثماني ، 1 أربعة ، 1 اثنين و 1 واحد. (8 + 4 + 2 + 1 = 15).

إذا نظرنا إلى ملف بيانات بتنسيق ثنائي ، فسيكون من الضخامة ومن المستحيل تقريبًا فهمه.

الخطوة التالية صعودًا من ثنائي هي ثماني ، والذي يستخدم 8 كرقم أساسي.

24 16 8 1
0 1 1 0

في النظام الثماني ، ينتقل العمود الأول من 0 إلى 7 ، والعامل الثاني هو 8 إلى 15 والعمود الثالث 16 إلى 23 والعمود الرابع 24 إلى 31 وهكذا. في حين أن القراءة أسهل عمومًا من ثنائي معظم الناس يفضلون استخدام سداسي عشري.

يستخدم سداسي عشري 16 كرقم أساسي. الآن هذا هو المكان الذي يصبح فيه مربكًا لأننا كبشر نفكر في الأرقام من 0 إلى 9.

إذن ما الذي يستخدم في 10 ، 11 ، 12 ، 13 ، 14 ، 15؟ الجواب هو الحروف.

وبالتالي يتم تمثيل القيمة 100 بـ 64. ستحتاج إلى 6 من عمود 16S الذي يصل إلى 96 ثم 4 في عمود الوحدات مما يجعل 100.

سيتم ترميز كافة الأحرف في ملف بواسطة قيمة سداسية عشرية. تعتمد هذه القيم على تنسيق الملف نفسه. يتم ترميز تنسيق الملف بواسطة قيم سداسية عشرية يتم تخزينها عادةً في بداية الملف.

مع معرفة تسلسل القيم السداسية العشرية التي تظهر في بداية الملفات ، يمكنك يدويًا تحديد تنسيق الملف. يمكن أن يساعدك عرض ملف في ملف تفريغ سداسي عشر في العثور على أحرف مخفية لا يتم عرضها عندما يكون الملف تحميلها في محرر نص عادي.

كيفية إنشاء سداسي عشري باستخدام لينكس

لإنشاء تفريغ سداسي عشر باستخدام Linux استخدم الأمر hexdump.

لعرض ملف كـ سداسي عشرية إلى المحطة الطرفية (الإخراج القياسي) قم بتشغيل الأمر التالي:

اسم الملف hexdump

فمثلا

hexdump image.png

سيعرض الإخراج الافتراضي رقم السطر (بتنسيق سداسي عشري) ثم 8 مجموعات من 4 قيم ست عشرية لكل سطر.

فمثلا:

00000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244

يمكنك توفير مفاتيح تبديل مختلفة لتغيير المخرجات الافتراضية. على سبيل المثال ، يؤدي تحديد رمز التبديل ناقص b إلى الحصول على تخالف مكون من 8 أرقام متبوعًا بـ 16 عمودًا ثالثًا ، صفر معبأ ، بايت بيانات الإدخال بتنسيق ثماني.

hexdump -b image.png

لذلك سيتم تمثيل المثال أعلاه على النحو التالي:

00000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122

يُعرف الشكل أعلاه بالشاشة الثمانية البايت الواحد.

طريقة أخرى لعرض الملف في عرض حرف بايت واحد باستخدام رمز التبديل ناقص c.

hexdump -c image.png

يعرض هذا مرة أخرى الإزاحة ولكن هذه المرة يتبعها ستة عشر فضاء مفصولة ، ثلاثة أعمدة ، أحرف مملوءة بالمساحة لبيانات الإدخال في كل سطر.

تتضمن الخيارات الأخرى شاشة العرض hex + ascii الكنسي التي يمكن عرضها باستخدام مفتاح C ناقص والعرض ثنائي البايت والذي يمكن عرضه باستخدام مفتاح التبديل ناقص d. يمكن استخدام رمز التبديل ناقص o لعرض عرض ثماني البايت. وأخيراً ، يمكن استخدام مفتاح التبديل minux x لعرض عرض سداسي عشري ثنائي البايت.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

إذا لم يناسب أي من التنسيقات المذكورة أعلاه احتياجاتك ، يمكنك استخدام مفتاح التبديل ناقص e لتحديد التنسيق.

إذا كنت تعرف أن ملف البيانات طويل جدًا وتريد فقط رؤية الأحرف القليلة الأولى لتحديد نوعه ، يمكنك استخدام رمز التبديل -n لتحديد مقدار الملف الذي سيتم عرضه في ست عشري.

hexdump -n100 image.png

يعرض الأمر أعلاه المائة بايت الأولى.

إذا كنت ترغب في تخطي جزء من الملف ، يمكنك استخدام مفتاح التبديل ناقص لإعداد إزاحة للتشغيل من.

hexdump -s10 image.png

إذا لم تقم بتوفير اسم الملف ، فسيتم قراءة النص من الإدخال القياسي.

ما عليك سوى إدخال الأمر التالي:

hexdump

ثم أدخل النص في الإدخال القياسي والانتهاء عن طريق كتابة الإقلاع عن التدخين. سيتم عرض سداسي عشرية إلى الإخراج القياسي.

ملخص

من الواضح أن أداة hexdump هي أداة قوية إلى حد ما ويجب عليك قراءة الصفحة اليدوية لتتوافق تمامًا مع جميع الميزات.

ستحتاج أيضًا إلى فهم جيد لما تبحث عنه عند قراءة الإخراج.

لعرض الصفحة اليدوية ، قم بتشغيل الأمر التالي:

الرجل hexdump