Bir Dosya veya Metin Dize Bir Hexdump Nasıl Oluşturulur

Giriş

Bir hex dökümü, verilerin onaltılık bir görünümüdür. Bir programı ayıklarken veya bir programı tersine çevirirken onaltılı kullanmak isteyebilirsiniz.

Örneğin, birçok dosya biçiminin türlerini belirtmek için belirli altıgen karakterleri vardır. Bir programı kullanarak bir dosyayı okumaya çalışıyorsanız ve bir nedenle doğru şekilde yüklenmiyorsa, dosyanın beklediğiniz biçimde olmaması olabilir.

Bir programın nasıl çalıştığını görmek ve kaynak kodunu veya kodu mühendisleri tersine çeviren bir yazılım parçanız yoksa, neler olup bittiğini öğrenmek için hex döküntüüne bakabilirsiniz.

Onaltılık Nedir?

Bilgisayarlar ikili olarak düşünüyor. Her karakter, sayı ve sembol bir ikili veya çoklu ikili değerler tarafından referans alınır.

Bununla birlikte, insanoğlu ondalık olarak düşünmek eğilimindedir.

Binlerce Yüzlerce Onlarca Birimler
1 0 1 1

İnsan olarak, en düşük sayılarımız birimler olarak adlandırılır ve 0'dan 9'a kadar olan sayıları temsil eder. 10'a geldiğimizde, birim sütununu tekrar 0'a sıfırlar ve onlarca sütununa (1) 1'i ekleriz.

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

İkili olarak, en düşük sayı sadece 0 ve 1'i temsil eder. 1'i geçtiğimizde 2'nin sütununa 1'i ve 1 sütununda 0'ı koyarız. 4'ü temsil etmek istediğinizde 4 sütununa 1 koyup 2 ve 1'in sütunlarını sıfırlayın.

Bu nedenle 15'i temsil etmek için 1 8, 1 dört, 1 iki ve 1 bir olan 1111 olacaktı. (8 + 4 + 2 + 1 = 15).

Bir veri dosyasını ikili formatta incelersek, kesinlikle muazzam ve neredeyse anlamamız imkansız olurdu.

İkiliden bir sonraki adım, baz numarası olarak 8'i kullanan sekizliktir.

24 16 8 1
0 1 1 0

Bir sekizli sistemde, ilk sütun O ila 7, ikinci sütun 8 ila 15, üçüncü sütun 16 ila 23 ve dördüncü sütun 24 ila 31'dir. Genelde okumanın daha kolay olmasına karşın, çoğu insan onaltılık kullanmayı tercih etmektedir.

Onaltılık taban numarası olarak 16'yı kullanır. Şimdi bu kafa karıştırıcı oluyor, çünkü insanlar sayıları 0'dan 9'a kadar düşünürüz.

Yani 10, 11, 12, 13, 14, 15 için ne kullanılır? Cevap mektuplar.

100 değeri bu nedenle 64 ile temsil edilir. 16s sütununun 6'sına ihtiyaç duyarsınız, bu da 96'yı ve sonra 4'ü birim oluşturan sütun 100'ü getirir.

Bir dosyadaki tüm karakterler onaltılık bir değerle gösterilir. Bu değerlerin anlamı, dosyanın biçimine bağlıdır. Dosyanın biçimi genellikle dosyanın başında saklanan onaltılık değerler ile belirtilir.

Dosyaların başında görünen onaltılı değerlerin sırasının bilgisi ile, dosyanın hangi formatta olduğunu manuel olarak öğrenebilirsiniz. Bir dosyayı bir hex dökümünde görüntülemek, dosya olduğunda gösterilmeyen gizli karakterler bulmanıza yardımcı olabilir. normal bir metin editörüne yüklendi.

Linux kullanarak bir Hex döküm nasıl oluşturulur

Linux kullanarak bir hex döküm oluşturmak için hexdump komutunu kullanın.

Bir dosyayı terminal olarak hex (standart çıkış) olarak görüntülemek için aşağıdaki komutu çalıştırın:

hexdump dosya adı

Örneğin

hexdump image.png

Varsayılan çıkış, satır numarasını (onaltılık biçimde) ve her satır için 8 adet 16 onaltılık değer gösterecektir.

Örneğin:

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

Varsayılan çıkışı değiştirmek için farklı anahtarlar sağlayabilirsiniz. Örneğin eksi b anahtarının belirtilmesi sekiz basamaklı bir ofset, ardından 16 üç sütun, sıfır doldurulmuş, sekizli biçimdeki giriş verileri baytını üretecektir.

hexdump -b image.png

Bu nedenle, yukarıdaki örnek şimdi aşağıdaki gibi temsil edilecektir:

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

Yukarıdaki format tek baytlı sekizli ekran olarak bilinir.

Dosyayı görmenin bir başka yolu, eksi c anahtarını kullanarak tek baytlık karakter gösterimidir.

hexdump -c image.png

Bu yine ofseti gösterir, ancak bu sefer on altı alan ayrılır, üç sütun, satır başına giriş verilerinin boşluk dolu karakterleri izler.

Diğer seçenekler arasında eksi C düğmesi ve eksi d düğmesi kullanılarak görüntülenebilen iki baytlı ondalık gösterge kullanılarak görüntülenebilen Canonical hex + ascii ekranı bulunur. Eksi o düğmesi, iki baytlık sekizli ekranı görüntülemek için kullanılabilir. Son olarak minux x anahtarı, iki baytlık onaltılık ekranı görüntülemek için kullanılabilir.

hexdump -C image.png

hexdump -d image.png

hexdump -o image.png

hexdump -x image.png

Yukarıdaki formatlardan hiçbiri sizin ihtiyaçlarınıza uymuyorsa, formatı belirlemek için eksi e düğmesini kullanın.

Bir veri dosyasının çok uzun olduğunu biliyorsanız ve türünü belirlemek için ilk birkaç karakteri görmek istiyorsanız, dosyanın hex'inde ne kadarının görüntüleneceğini belirtmek için -n anahtarını kullanabilirsiniz.

hexdump -n100 image.png

Yukarıdaki komut, ilk yüz baytı görüntüler.

Dosyanın bir bölümünü atlamak isterseniz, başlangıç ​​için bir offset ayarlamak için eksi s anahtarını kullanabilirsiniz.

hexdump -s10 image.png

Bir dosya adı vermezseniz, metin standart girişten okunur.

Sadece aşağıdaki komutu girin:

HexDump

Daha sonra metni standart girdiye girin ve çıkın yazarak bitirin. Hex standart çıkışa gösterilecektir.

özet

Hexdump programı açıkçası oldukça güçlü bir araçtır ve kesinlikle tüm özellikleriyle birlikte ele almak için manuel sayfayı mutlaka okumalısınız.

Çıktıyı okurken neleri aradığınızı da iyi bir şekilde anlamanız gerekir.

Kılavuz sayfasını görüntülemek için aşağıdaki komutu çalıştırın:

adam hexdump