HexEditor#

Podstawowe informacje#

Instalacja#

Proces instalacji wtyczki przebiega w sposób standardowy. Finalnie na całą wtyczkę składają się następujące pliki i foldery:

Wtyczka w oknie Zarządzanie wtyczkami oraz w kategorii Wtyczki widocznej u góry na Pasku menu jest widoczna pod nazwą "HEX-Editor".

Menu wtyczki#

U góry na Pasku menu plugin tworzy następujące menu wtyczki:

HexEditor - menu wtyczki w domyślnym stanie

Rysunek. HexEditor - menu wtyczki w domyślnym stanie

Opis#

Wtyczka dodaje do programu Notepad++ dwa standardowe narzędzia znane z klasycznych edytorów HEX:

HexEditor - pierwsza zwrotka Inwokacji z 'Pana Tadeusza' Adama Mickiewicza w czytelnej postaci (po lewej) i w podglądzie HEX (po prawej) w kodowaniu UTF-8

Rysunek. HexEditor - pierwsza zwrotka Inwokacji z 'Pana Tadeusza' Adama Mickiewicza w czytelnej postaci (po lewej) i w podglądzie HEX (po prawej) w kodowaniu UTF-8

Podstawowe informacje na temat wtyczki i skrótowy opis poszczególnych jej poleceń można znaleźć w oknie przywoływanym za pomocą polecenia Help... z menu wtyczki.

HexEditor - okno Help z podstawowymi informacjami o wtyczce

Rysunek. HexEditor - okno Help z podstawowymi informacjami o wtyczce

Wprowadzenie#

Zanim przejdziemy dalej najpierw należałoby wyjaśnić kilka podstawowych kwestii teoretycznych. Zakładam, że czytelnikowi nie są obce następujące zagadnienia:

Edytor heksadecymalny # (WikiEN, WikiPL), często nazywany też edytorem binarnym, edytorem bajtowym lub krótko edytorem HEX, służy do edycji plików binarnych (np. plików EXE), modyfikacji konkretnych wpisów w sektorach dysku lub ogólnie do podglądu danych w postaciach binarnej i czytelnej (np. zgodnej z ASCII) obok siebie. W podglądzie binarnym każdy bajt najczęściej prezentowany jest w zapisie HEX, gdyż jest on najbardziej kompaktowy i czytelny dla ludzi, choć w tych lepszy edytorach zapis bajtów można zmienić na inny (np. na dwójkowy). Poniżej zamieszczam kilka równorzędnych przykładów dla trzech najważniejszych zapisów liczbowych:

Zgodnie z powyższymi przykładami zapisy heksadecymalne FFFF, FFFFFF i FFFFFFFF są krótsze i łatwiejsze do zapamiętania niż ich dziesiętne odpowiedniki 65535, 16777215 i 4294967295.

Załóżmy, że mamy jakieś wyjściowe dane #, których bajty (w ilości 64) można przedstawić w jednej linii. W tym momencie ich rzeczywista wartość nie jest istotna, chodzi jedynie o zobrazowanie ich jako całości:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
BajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajtBajt

Taki zapis nie jest łatwy do analizowania, a poziomy pasek przewijania jeszcze bardziej utrudnia tę czynność. To, co moglibyśmy zrobić to podzielić całości na stałą liczbę kolumn, np. 16, co przy naszych 64 bajtach z automatu utworzy nam 4 wiersze. Dodatkowo w celu poprawy czytelności możemy dodać jakieś odstępy między wierszami i kolumnami:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt

Jest lepiej, ale brakuje jeszcze jakiegoś szybkiego sposobu pozwalającego ustalić, z którym konkretnie bajtem (względem całości) mamy do czynienia, np. z 5., 10. czy 25. Dla małej porcji danych łatwo to wyliczyć w oparciu o liczbę wierszy i kolumn, ale sytuacja się komplikuje, kiedy wierszy jest bardzo dużo i pojawia się pionowy pasek przewijania. Mając już postać bajtów w postaci dwuwymiarowej tablicy możemy użyć stosownej indeksacji, która pozwoli szybko odczytać numer każdego z bajtów. Ze względów praktycznych (wymienionych wyżej) najczęściej używa się indeksów w zapisie HEX, które potocznie określa się adresami. Dla naszego przykładu całość może przyjąć następującą postać:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
Adres	 0	  1	   2	3	 4	  5	   6	7	 8	  9	   A	B	 C	 D	   E	F
0000	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
0010	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
0020	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
0030	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt

Pierwsza kolumna z nagłówkiem Adres # zawsze zawiera adres dla pierwszego bajtu w danym wierszu, czyli tego, który znajduje się w drugiej kolumnie z nagłówkiem 0. W oparciu o ten pierwszy adres i nagłówki z kolejnych kolumn możemy wyznaczyć adres pozostałych bajtów w danym wierszu. Dla naszego przykładu każdy bajt można opisać następującymi adresami (szary kolor):

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
Adres	 0	  1	   2	3	 4	  5	   6	7	 8	  9	   A	B	 C	 D	   E	F
0000	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F
0010	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F
0020	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F
0030	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F

Oczywiście liczba kolumn dla bajtów to kwestia umowna i w edytorach HEX zazwyczaj można ją dowolnie modyfikować. W układzie z 8. kolumnami nasz przykład przyjmie następującą postać z 8. wierszami:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
Adres	 0	  1	   2	3	 4	  5	   6	7
0000	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0000 0001 0002 0003 0004 0005 0006 0007
0008	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0008 0009 000A 000B 000C 000D 000E 000F
0010	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0010 0011 0012 0013 0014 0015 0016 0017
0018	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0018 0019 001A 001B 001C 001D 001E 001F
0020	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0020 0021 0022 0023 0024 0025 0026 0027
0028	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0028 0029 002A 002B 002C 002D 002E 002F
0030	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0030 0031 0032 0033 0034 0035 0036 0037
0038	Bajt Bajt Bajt Bajt Bajt Bajt Bajt Bajt
		0038 0039 003A 003B 003C 003D 003E 003F

Mimo różnego rozkładu wierszy i kolumn liczba bajtów dla naszego wyjściowego przykładu jest taka sama i ostatni z nich ma adres 003F (dziesiętnie 63), czyli w rzeczywistości jest 64. bajtem (nie należy zapominać o bajcie na 0. pozycji).

Kolumny nie muszą zawierać pojedynczego bajtu #, czasami łatwiej analizuje się dane, kiedy jest ich więcej, np. 2 (dla kodowania UTF-16) lub 4 (dla kodowania UTF-32). Dzięki temu możemy w wygodny sposób analizować rozkład bajtów w różnych zapisach (BE lub LE). Nasz wyjściowy przykład z 4. kolumnami i 2. bajtami w każdej z nich przyjmie następującą postać:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
Adres		0			2			4		 	6
0000	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0000 0001	0002 0003	0004 0005	0006 0007
0008	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0008 0009	000A 000B	000C 000D	000E 000F
0010	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0010 0011	0012 0013	0014 0015	0016 0017
0018	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0018 0019	001A 001B	001C 001D	001E 001F
0020	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0020 0021	0022 0023	0024 0025	0026 0027
0028	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0028 0029	002A 002B	002C 002D	002E 002F
0030	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0030 0031	0032 0033	0034 0035	0036 0037
0038	Bajt Bajt	Bajt Bajt	Bajt Bajt	Bajt Bajt
		0038 0039	003A 003B	003C 003D	003E 003F

Edytory HEX zazwyczaj pozwalają także modyfikować długość adresu #, zwykle w przedziale 4-16 (domyślnie 8). Jeśli analizujemy małe porcje danych to warto ustawić sobie jak najmniejsze wartości, aby cała wizualizacja zajmowała jak najmniejszy obszar na ekranie (początkowe wiodące zera w adresie i tak są zbędne). W poniższej tabeli zamieszczam maksymalny możliwy rozmiar danych przy różnych długościach adresu.

Długość adresu [znaki]Max. wartość adresu [HEX]Wielkość danych
[bajt][kilobajt][megabajt][gigabajt][terabajt][petabajt][eksabajt]
1F160,015625małomałomałomałomało
2FF2560,25małomałomałomałomało
3FFF409640,00390625małomałomałomało
4FFFF65536640,0625małomałomałomało
5FFFFF104857610241małomałomałomało
6FFFFFF1677721616384160,015625małomałomało
7FFFFFFF2684354562621442560,25małomałomało
8FFFFFFFF42949672964194304409640,00390625małomało
9FFFFFFFFF687194767366710886465536640,0625małomało
10FFFFFFFFFF10995116277761073741824104857610241małomało
11FFFFFFFFFFF17592186044416171798691841677721616384160,015625mało
12FFFFFFFFFFFF2814749767106562748779069442684354562621442560,25mało
13FFFFFFFFFFFFF4503599627370496439804651110442949672964194304409640,00390625
14FFFFFFFFFFFFFF7205759403792793670368744177664687194767366710886465536640,0625
15FFFFFFFFFFFFFFF1152921504606846976112589990684262410995116277761073741824104857610241
16FFFFFFFFFFFFFFFF18446744073709551616180143985094819841759218604441617179869184167772161638416

Ogólnie rzecz biorąc, te 16 eksabajtów to maksymalna wartość, jaką są w stanie zaadresować obecne 64-bitowe procesory (264). Tak czy inaczej są to niewielkie wartość w porównaniu z tym, ile danych cyfrowych przechowuje ludzkość w obecnych czasach (info1, info2, info3). Kończąc ten wywód warto jeszcze rzucić okiem na kilka ciekawostek w odniesieniu do petabajta.

Podgląd HEX#

Wtyczka działa w specyficzny sposób bo nie posiada własnego okna/panelu, a zamiast tego przekształca Obszar edycji w coś, co przypomina klasyczny edytor HEX. Podgląd HEX aktywujemy wybierając u góry na Pasku menu kolejno Wtyczki >> HexEditor >> View in HEX (domyślny skrót Ctrl+Alt+Shift+H) lub klikając przycisk HexEditor - ikonka podgluądu HEX na Pasku narzędzi. Istnieje możliwość automatycznego wywoływania tego trybu dla każdego nowo otwartego pliku (zależnie od jego rozszerzenia) za pomocą odpowiedniej opcji z okna Hex-Editor Options. Włączenie podglądu HEX jest sygnalizowane etykietą Hex Edit View widoczną w lewym dolnym rogu Pasku stanu. Nawet po wyłączeniu podgląd HEX etykieta dalej jest wyświetlana, co wydaje się być błędem (bug 25).

Z racji tego, że każda karta z Paska kart posiada własny bufor wizualizowany w Obszarze edycji, to przywołanie podglądu HEX i późniejsza jego modyfikacja czy zmiana niektórych jego cech poprzez menu kontekstowego odbywa się tylko i wyłącznie dla tego konkretnego podglądu HEX. Nie ma żadnych hurtowych poleceń, które umożliwiłyby włączenie/wyłączenie podglądu HEX dla wszystkich pootwieranych plików.

Dla uproszczenia wszystkie charakterystyczne obszary tego podglądu można zobrazować za pomocą opisowej grafiki #:

HexEditor - podgląd HEX w domyślnym stanie i zaznaczonymi najważniejszymi jego elementami

Rysunek. HexEditor - podgląd HEX w domyślnym stanie i zaznaczonymi najważniejszymi jego elementami

Poszczególne elementy można scharakteryzować następująco:

HexEditor - pierwsza zwrotka Inwokacji z 'Pana Tadeusza' Adama Mickiewicza w czytelnej postaci (po lewej) i w podglądzie HEX (po prawej) w kodowaniu ANSI

Rysunek. HexEditor - pierwsza zwrotka Inwokacji z 'Pana Tadeusza' Adama Mickiewicza w czytelnej postaci (po lewej) i w podglądzie HEX (po prawej) w kodowaniu ANSI

Domyślny układ podglądu HEX i wygląd poszczególnych jego elementów można dostroić poprzez okno Hex-Editor Options.

Przy użyciu myszy lub klawiatury możemy wykonywać pewne operacje na elementach z podglądu HEX:

Menu kontekstowe#

Podgląd HEX posiada własne menu kontekstowe pod prawym klawiszem myszy, które zawiera cztery standardowe operacje na tekście oraz umożliwia wyrywkowe przełączenie niektórych opcji dla aktualnie wybranego podglądu HEX. Trzeba wyraźnie zaznaczyć, że domyślne ustawienia z okna Hex-Editor Options mają zastosowanie tylko przy aktywacji podglądu HEX, a poprzez menu kontekstowe część z nich możemy dodatkowo zmienić dla każdego podgląd HEX z osobna.

HexEditor - menu kontekstowe dla podglądu HEX

Rysunek. HexEditor - menu kontekstowe dla podglądu HEX

W zależności od stanu podglądu HEX przywołującego menu kontekstowe niektóre pozycje tego menu będą niedostępne (wyszarzone) lub zmienione. Poniżej zamieszczam wykaz wszystkich dostępnych poleceń oraz i ich krótką charakterystykę:

Uproszczony Pasek menu#

Przełączenie się na kartę z Paska kart, która ma włączony podgląd HEX powoduje, że Pasek menu z głównego okna programu zostanie automatycznie zmodyfikowany. Jest to konieczne bo nie wszystkie operacje dostępne w oryginalnym Pasku menu są możliwe do wykonania przy włączonym podglądzie HEX. Niektóre kategorie są całkowicie zablokowane (wyszarzone): Format, Składnia, Narzędzia i Makra, a cztery pierwsze znacznie odchudzono:

To, że jakiegoś oryginalnego polecenia nie ma w zmodyfikowanych kategoriach nie zawsze oznacza, że nie można go wywołać przy użyciu skrótu klawiszowego, przykładowo polecenie Przełącz tryb Post-It (skrót F12) z kategorii Widok jest niewidoczne, chociaż przełączenie podglądu HEX w tryb Post-It wciąż działa. Nie wykluczam, że takich przypadków może być znacznie więcej, ale nie miałem szczególnych powodów, by wszystkie je zlokalizować.

HexEditor - podgląd HEX w trybie Post-It

Rysunek. HexEditor - podgląd HEX w trybie Post-It

Oprócz przebudowy oryginalnego Paska menu wtyczka lekko modyfikuje też jego wygląd. Już na pierwszy rzut oka widać, że w podmienionym Pasku menu odstępy między poleceniami w poszczególnych kategoriach są znacznie mniejsze, co czyni całość bardziej kompaktową. Znak fajki przy poleceniach dwustanowych ma prostszą formę i jest koloru czarnego, podobnie zresztą jak separator między grupami poleceń.

HexEditor - wygląd kategorii Widok z Paska menu (z lewej oryginalny i z prawej po włączeniu a następnie wyłączeniu podglądu HEX)

Rysunek. HexEditor - wygląd kategorii Widok z Paska menu (z lewej oryginalny i z prawej po włączeniu a następnie wyłączeniu podglądu HEX)

Problem w tym, że jednokrotne włączenie podglądu HEX trwale narzuca ten nowy wygląd, i nawet po wyłączeniu wszystkich podglądów HEX nowy wygląd wciąż jest aktywny (bug 26). Przywrócenie oryginalnego wyglądu Paska menu jest możliwe tylko poprzez ponowne uruchomienie programu Notepad++ lub otworzenie kolejnego głównego okna programu.

Dodatkowe okna#

Przy włączonym podglądzie HEX wtyczka dodatkowo udostępnia pięć własnych okien pozwalających wykonywać podstawowe operacje na prezentowanych w ten sposób danych. Wszystkie okna z kategorii Szukaj w uproszczonym Pasku menu tak naprawdę zastępują ich oryginalne odpowiedniki dostępne przy wyłączonym podglądzie HEX. Poniżej zamieszczam listę wszystkich dodatkowych okien tworzonych przez wtyczkę:

Porównanie dwóch podglądów HEX#

Wtyczka pozwala porównywać dwa podglądy HEX obok siebie poprzez wybranie u góry na Pasku menu kolejno Wtyczki >> HexEditor >> Compare HEX. Prawidłowe zastosowanie tego polecenia wymaga spełnienia następujących warunków jeszcze przed jego wywołaniem:

Bez spełnienia powyższych warunków polecenie Compare HEX jest całkowicie zablokowane (wyszarzone). Polecenie działa tak, że porównywane są bajty z tych samych pozycji # (wiersz do wiersza i kolumna do kolumny) między obydwoma podglądami HEX i wszystkie odnalezione różniące zostaną oznaczone osobnym kolorem tekstu i tła, które można zmienić. Porównanie dotyczy wszystkich bajtów z obu podglądów HEX i nie można tego zawęzić poprzez zaznaczenie ich konkretnych fragmentów.

HexEditor - porównanie dwóch podglądów HEX

Rysunek. HexEditor - porównanie dwóch podglądów HEX

W trakcie wykonywania porównania wtyczka generuje pomocnicze pliki .cmp, osobno dla każdej porównywanej pary, i umieszcza je w dodatkowym folderze NPP\plugins\HexEditor\Compare. Anulowanie wyników porównania wymaga wybrania u góry na Pasku menu kolejno Wtyczki >> HexEditor >> Clear Compare Results w każdym porównywanym podglądzie HEX z osobna. Teoretycznie operacja ta powinna usunąć także odpowiadający plik .cmp, ale nie zawsze się tak dzieje, szczególnie kiedy zamkniemy porównywane pliki przed wywołaniem operacji czyszczącej. Z tego też powodu warto co jakiś czas ręcznie przeczyścić cały katalog NPP\plugins\HexEditor\Compare.

Porównanie dwóch identycznych podglądów HEX jest sygnalizowane komunikatem Files Match w dodatkowym oknie Hex-Editor Compare o charakterze modalnym. W tym wypadku również tworzony jest plik .cmp, ale zostaje on automatycznie usunięty po zamknięciu tego okna.

HexEditor - okno Hex-Editor Compare informujące o porównaniu dwóch identycznych podglądów HEX

Rysunek. HexEditor - okno Hex-Editor Compare informujące o porównaniu dwóch identycznych podglądów HEX

Problem z tym poleceniem jest taki, że dostawienie choćby jednego nadmiarowego znaku w porównywanych danych powoduje, że większość kolejnych znaków (i czasami nawet ten dostawiony jeśli się różni) zwykle są traktowane jak różnice i oznaczone dodatkowym tłem. Wynika to wprost z wspomnianego już nieco wcześniej bajtowego porównywania wykonywanego przez wtyczkę.

HexEditor - porównanie dwóch identycznie wyglądających plików (w drugim dostawiono znacznik BOM na początku)

Rysunek. HexEditor - porównanie dwóch identycznie wyglądających plików (w drugim dostawiono znacznik BOM na początku)

Z tego też powodu polecenie to nie specjalnie nadaje się do wyszukiwania różnic między podobnie wyglądającymi danymi tekstowymi, i w tym kontekście prawdopodobnie lepiej sprawdzi się wtyczka ComparePlus lub jej alternatywy.

Hex-Editor Options#

Wtyczka daje większą kontrolę nad wyglądem podglądu HEX za pośrednictwem okna Hex-Editor Options o charakterze modalnym, które przywołujemy poleceniem Options... dostępnym w menu wtyczki. Ustawienia z tego okna są domyślnymi dla wszystkich nowo otwartych podglądów HEX, ale przy pomocy menu kontekstowego część tych opcji można przesłonić dla każdego podglądu HEX z osobna.

Trzeba wyraźnie zaznaczyć, że zmiana niektórych opcji w oknie Hex-Editor Options wymaga ponownego uruchomienia programu Notepad++, co na pierwszy rzut oka nie musi być oczywiste (bug 19). Alternatywnie można też zamknąć i ponownie otworzyć plik, dla którego podgląd HEX został chociaż raz przywołany, co spowoduje, że kolejna aktywacja podglądu HEX uwzględni przeprowadzone zmiany. Nie dotyczy to tych plików, którym podgląd HEX nie został ani razu włączony. Na potrzebę późniejszych opisów obie te czynności nazywam wspólnym terminem twarde przeładowanie podglądu HEX #.

Okno Hex-Editor Options składa się z czterech zakładek, które można scharakteryzować następująco:

Alternatywa#

Ogólnie rzecz biorąc wtyczka wprowadza do programu Notepad++ najprostszą formę edytora HEX. Przy prostych czynnościach sprawdza się znakomicie, jak chociażby w trakcie nauki zagadnień związanych z zestawami znaków i ich kodowaniami. Niestety na chwilę obecną zawiera sporo nierozwiązanych błędów, a i tempo rozwoju bieżącego projektu jest w zasadzie symboliczne. Przy grubszych zadaniach warto sięgnąć po coś bardziej aktualnego i rozbudowanego:

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

HexEditor (H1) Podstawowe informacje (H2) Instalacja (H2) Menu wtyczki (H2) Opis (H2) Wprowadzenie (H3) Podgląd HEX (H3) Menu kontekstowe (H4) Uproszczony Pasek menu (H4) Dodatkowe okna (H4) Porównanie dwóch podglądów HEX (H4) Hex-Editor Options (H3) Alternatywa (H2)