Bunlar, kaynak verilerden alınan grafik dökümlerdir. Bunu kapsamlı kullanıyorum, kendi yazdığım bir onaltılık okuyucu ile - bu, "verileri" hızlı bir şekilde bulmanın harika bir yoludur ( .text
ile arasındaki farka bakın. veri
) ve daha büyük yapılar (genellikle aynı ofsetler üzerinde tekrar eden veya benzer veriler içerir).
En üstteki resimler gri tonlamalı bilgi olarak dökülmüş ham verileri gösterir: her bayt bir piksel olarak değerlendirilir. Muhtemelen, yazar kolaylık sağlamak için gri tonlamayı seçti. Tam bir zıt renkler yelpazesini tercih ederim, bu nedenle "aynı" ve "benzer" verilerin uzun alanları daha kolay anlaşılabilir.
Alt tarafa yakın tek renkli bloklar ( .rsrc
) simgeler ve diğer grafiklerdir. Yatay olarak uzatılmış görünüyorlar çünkü bayt başına bir piksel olarak görüntüleniyorlar ve aslında 16, 24 veya 32 bpp'lik görüntüler.
(Tüm üst tarafın .text
! Yürütülebilir kod rastgele pikseller olarak görünür, ancak bu görüntüdeki ilk 1/3 ün daha az yoğun. Muhtemelen MZ ve PE Yürütülebilir Başlığıdır; bunlar çok sayıda sıfır içerir. alttaki 1/3, .text
'in bir parçasıdır ve büyük olasılıkla, 0xFF
baytını çok fazla içeren Sanal Çağrı tablosudur.)
Alttaki görüntülerde, her bayt tek renkli ikili formatta görüntülenir: her bayt 8 ardışık piksel olarak gösterilir. Geleneksel olarak, bunlar en önemli bit ilk olarak görüntülenir. Yalnızca tek bir bayttan daha büyük tek değerlerle uğraşırken devreye girdiği için 'bitkinliği' kontrol etmeye gerek yoktur.
Böyle bir şeyi kendi başınıza yazmak zor değildir; muhtemelen en önemlisi, grafik rutinlerini, özellikle monokrom bitmapleri olabildiğince hızlı hale getirmektir. Bu aynı zamanda Conti ve diğerleri, İkili ve Veri Dosyalarının Görsel Ters Mühendisliği ( http://www.rumint.org/gregconti/publications/2008_VizSEC_FileVisualization_v53_final.pdf tarafından da ele alınmaktadır. ):
Performansı test ederken, ekranın 0,03 saniyede güncellenebileceğini gördük, bu da daha yüksek çözünürlüklerde görselleştirmelerin yanı sıra duyarlı bir arayüz sağlamaya devam etme olasılığını açık bıraktı. [...] C #’ın GetPixel ve SetPixel yöntemlerinden kaçınarak ve doğrudan görüntü belleğine erişerek bu performans düzeyine ulaşmayı başardık [...]
Kendi aracımın ekran görüntüleri , yukarıda gösterilene çok benzer:
CALC.EXE'nin .text
bölümü. Alt kısımdaki yinelenen yapı, Sanal Çağrı tablosudur.
RLE kodlu görüntüleri içeren bir dosya. RLE sıkıştırması, "tutarlı" verilerin yatay çizgileriyle tanınabilir (etkileşimli olarak genişlik değiştirildiğinde daha iyi görülebilir).
Tek renkli GZ sıkıştırılmış veriler. Bu, rastgele durağanlığa olabildiğince yakın.
Başka bir yürütülebilir dosyada bulunan küçük bir gömülü bitmap yazı tipi. Karakterler arasındaki rastgele bitler piksel cinsinden genişliktir - eşzamanlı olarak kaydırılan onaltılık dökümüne bakın.
Bazı veriler başka şekillerde daha iyi görselleştirilir. Bu eski tarz bir VGA paletidir (6x6x6 RGB).