W niedzielę po raz kolejny postanowiłem pobawić się w wizualizację plików. Wizualizacja plików to temat długi i szeroki, i nawet są strony jej poświęcone, na których to autorzy prezentują kolorowe bitmapki przedstawiające pliki - często 1 do 1, czyli 3 kolejne bajty w pliku traktowane są jako wartości RGB. W moim przypadku natomiast zamiast RGB, będzie X i Y.

Założenie jest takie - mamy białą bitmapę o wielkości 256 x 256, a następnie bierzmy dwa kolejne bajty pliku, uznajemy że pierwszy z nich to koordynat X, drugi z nich Y, a następnie w miejscu (X,Y) bitmapy "przyciemniamy" pixel (tak że z każdym przyciemnieniem dostajemy coraz ciemniejszy kolor w danym miejscu), i tak dla każdych dwóch kolejnych bajtów pliku (czyli mamy wielkość_pliku - 1 par bajtów).

Całość brzmi prosto, i w dodatku - jest prosta ;> Możemy więc zastosować parę utrudnień:
1) zastosujmy skalę logarytmiczną
2) przeskalujmy kolory tak aby najmniejsza ilość wystąpień była zawsze zaznaczana na biało, a największa zawsze na czarno
3) użyjmy jakiegoś fajnego koloru (np. sepii, albo czegoś podobnego)

OK. A teraz mając programik, wrzucamy wszystkieee pliki jakie znajdziemy na dysku i patrzymy na efekty!

Zacznę od kilku plików z mojego system32 z Visty:

localsec.dll
localsec.dll

Tak wygląda przykładowa nudnawa bitmapa. Jak się okazuje, nie wszystkie jednak są tak nudne! Rzućmy okiem np. na tą:

slcc.dll
slcc.dll

Pojawiają się jakieś 'nogi pająka'. Ciekawie... szukajmy dalej...

ssBranded.scr
ssBranded.scr

Powyżej mamy już kapkę ciekawszy obiekt, z wyraźnymi tendencjami. Jeszcze kilka innych plików:

8point1.wav
8point1.wav

aurora.scr
aurora.scr

locale.nls
locale.nls

Oraz, jeden z najciekawszych okazów!

spwizimg.dll
spwizimg.dll

Huh! Czy to ptak? Czy to batman? Jak się okazuje nie, to ani ptak, ani batman, ani inny diabeł (jeżeli byłby to diabeł to jestem pewien wykopu o nazwie 'Szatan ukryty w Windows Vista!' ;D), tylko pliki BMP zaszyte w resource'ach, z gradientami. Okazuje się mianowicie że pliki graficzne (zdjęcia, rysunki, etc), skonwertowane do BMP/RAW/TGA/czegoś bez kompresji, i wrzucone w opisaną funkcję matematyczną dają baaardzooo ciekawe rezultaty. Rzućmy okiem na kilka z nich:

some image

some image

some image

Pełna galeria plików które uznałem za ciekawe dostępna jest tutaj: Pełna Galeria

Kod źródłowy (jak zwykle brzydki) + binarka: file2d.zip (ZIP SRC+BIN, 7kb)

Jeżeli znajdziecie jakąś ciekawą wizualizację, wrzućcie linka w komentarz :)

I tyle...

P.S. Dopiero się zorientowałem że mój blog został również zgłoszony do konkursu "CONFidence Security Evangelist" w kategorii "Blog o bezpieczeństwie IT w języku polskim". Huh ;) Thx za to, czuje się mile zaskoczony ;) Chociaż przyznaje iż osobiście uważam że mój blog się tam średnio nadaje, gdyż security w nim jest co najwyżej 25% ;)

P.S.2. Znajomy podesłał mi linka którego dostał na GG - http://www.wyznanie.mx.tc/, wygląda na to że ktoś znalazł ciekawy sposób by "profesjonalnie" wyciągnąć kasę od naiwnych ;D
UPDATE: Oho, właśnie i do mnie trafiła ów wiadomość... "Wyznaję Ci miłość...  http://www.wyznanie.mx.tc" (od 9945803, pewnie fake do spamu jak zwyklę). Swoją drogą nietanii ten SMS - 23,18 zł. Ciekawe ile osób się na to nabrało...

Comments:

2009-05-25 21:33:06 = krajek
{
Wow, czego to ludzie nie wymyślą :-).
}
2009-05-25 21:54:23 = ryniek
{
A próbowałeś wizualizować bajty engine'ów AV lub kodu rootkitów/innego syfu? Ciekawe jakby to wyglądało??

Pozdrawiam
}
2009-05-25 23:39:57 = Jurgi
{
Powiedzenie starych fachmanów "ten plik wygląda mi podejrzanie" nabiera nowego znaczenia. :)
}
2009-05-26 00:17:55 = Marooned
{
int 19h ;banalne, a jakie bajeranckie.. i ładny kolorek dobrany :)
}
2009-05-26 00:48:37 = Marooned
{
2 fajne binarki:
http://img268.imageshack.us/img268/7719/outllibrdll1033.png
http://img20.imageshack.us/img20/7792/hackeyeexe.png
}
2009-05-27 16:25:09 = Gynvael Coldwind
{
@krajek
Ano ;D Też mnie to zadziwia ;>

@ryniek
Nie, przypuszczam że z uwagi na wysoką entropię będzie mało ciekawie. Ale pomysł dobry, spróbuje potem :)

@Jurgi
Haha ano ;D

@Marooned
int 19h ? Czy ty mnie tu próbujesz przeładować? ;>
Ano, kolorek też mi się podoba ;D Ponad godzinę szukałem dobrej palety kolorów ;p
Co do linków: rzeczywiście ciekaw, szczególnie ten drugi mi się podoba ;>
}
2009-05-31 14:06:29 = Reg
{
Heh genialne! Muszę się też pobawić w takie wizualizacje plików, może wymyślę jeszcze inny sposób na ich efektowne pokazywanie. Widziałem gdzieś, że próbują też w jakiś sposób wizualizować kod wirusów komputerowych.
}
2009-05-31 22:11:35 = Gynvael Coldwind
{
@Reg
Czekam na linka do ładnych obrazków ;>>>
}
2010-01-08 13:05:10 = marcin k.
{
świetne, od kiedy znajomy informatyk uświadomił mi, że zarówno filmy, zdjęcia jak i teksty czy inne rzeczy to po prostu różne rozkłady 0 i 1 to cały czas sie zastanawiałem czy mogłbym zobaczyć, co narysowałem pisząc magisterkę, tylko nie wiedziałem jak się za to zabrać :) a potem pomysł uleciał, ale dzisiaj, jak wrócę do domu... to zacznę męczyć znajomka o pomoc:D
}
2010-01-16 02:16:32 = Gynvael Coldwind
{
@marcin k.
Powodzenia ;>
Gdyby coś ciekawego z tego ci wyszło, koniecznie daj znać ;>
}
2014-05-09 16:43:49 = minus1
{
Swego czasu bawiłem się podobnymi wizualizacjami z tym, że 3D, po przeczytaniu pierwszej książki lcamtufa. Można sobie szybko przetestować rozkład pseudolosowych danych. Kiedyś szukałem nawet innych zastosowań, ale to tylko teorie. Gyn za trudne zadania dajesz w tych captchach ;)
}

Add a comment:

Nick:
URL (optional):
Math captcha: 1 ∗ 2 + 7 =