Jak edytować plik z poziomu bajtów?

HxD

Jak edytować plik z poziomu bajtów? Odpowiedź na to pytanie wydaje się być prosta – wystarczy zmienić zawartość danego pliku. Tak jednak można uczynić w przypadku bezpośredniej edycji pliku, np. video, audio, pliku tekstowego, arkusza kalkulacyjnego itp. w dedykowanych programach. Jak zmienić natomiast zawartość pliku wykonywalnego, bądź dowolnego innego ale z poziomu bajtów? Otóż, musimy wniknąć w bajtową strukturę pliku. Potrzebujemy więc narzędzia, które umożliwi podejrzenie owej struktury od „podstaw”. Jednym z takich przykładowych narzędzi jest program HxD.

Stwórzmy przykładowy plik dokumentu tekstowego notatnika, oraz umieśćmy tam dowolny tekst. W przykładzie wpisano słowo dokument. Jak wiadomo, jeden znak to jeden bajt. Objętość
naszego pliku wynosi więc 8B.

Jak edytować plik z poziomu bajtów?

Jak edytować plik z poziomu bajtów?

Otwierając plik w HxD otrzymujemy jego strukturę bajtową, w której każdy bajt odzwierciedlony jest przez zapis heksadecymalny z kodu ASCII. Z lewej strony (Offset) zapisana jest dotychczasowa liczba (hex) znaków – do ostatniego znaku wiersza poprzedzającego bieżący włącznie. Każdy wiersz zawiera 16 kolumn, oznaczonych również heksadecymalnie. Po stronie prawej mamy zawartość pliku. Zawartość tą można zmieniać w sekcji środowej (kolumny hex).

Jak edytować plik z poziomu bajtów?

Jak edytować plik z poziomu bajtów?

Zamieńmy więc literę k na c. Litera c w kodzie ASCII posiada wartość szesnastkową równą 63. Wstawiając więc zamiast wartości 6B wartość 63 zmienimy zawartość pliku, otrzymując słowo document.

Jak edytować plik z poziomu bajtów?

Jak edytować plik z poziomu bajtów?

Na poniższym screenie przedstawiono jeszcze zawartość nieco dłuższego pliku tekstowego.

Jak edytować plik z poziomu bajtów?

Jak edytować plik z poziomu bajtów?

W ten sposób możemy zmienić zawartość dowolnego pliku, np. video, audio itp. Oczywiście zawartość pliku nietekstowego nie będzie wizualnie zrozumiała: będzie to ciąg „krzaczków”. Poniżej przykład pliku graficznego bmp o rozmiarze 6934B. Jak widać ostatnia wartość wiersza Offset (h) wynosi 1B10(16) = 6928(10) (szybkiej konwersji między systemami liczbowymi możemy dokonać chociażby w Windowsowym kalkulatorze – Widok/Programisty).

 Jak edytować plik z poziomu bajtów?


Jak edytować plik z poziomu bajtów?

Dodając do tej wartości ostatnie 6B ostaniego wiersza, otrzymujemy więc rozmiar 6934B, co zgadza sięz informacjami zamieszczonymi w oknie Właściwości pliku w systemie Windows (PPM na pliku).

 Jak edytować plik z poziomu bajtów?

Jak edytować plik z poziomu bajtów?

Na tej zasadzie możemy dowolnie zmieniać/edytować zawartość dowolnego pliku na poziomie bajtów.

Zostaw odpowiedź

Twój email nie zostanie opublikowany. Pola wymagane oznaczone *