Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
Vademecum hakera.
Edycja plikw binarnych
Autor: Damian Daszkiewicz
ISBN: 83-7361-067-7
Format: B5, stron: 290
Zawiera CD-ROM
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Przedmowa........................................................................................ 7
Rozdzia 1. Systemy liczbowe ............................................................................ 13
System dziesitny (decymalny) ................................................................................13
System dwjkowy (binarny) ....................................................................................14
System semkowy (oktalny) ....................................................................................14
System szesnastkowy (heksadecymalny)...................................................................15
Kod BCD...............................................................................................................16
Wielkie liczby ........................................................................................................17
Liczby ujemne........................................................................................................18
Odczytywanie liczby ujemnej ..................................................................................22
Modszy i starszy bajt programowanie..................................................................24
Konwersja liczb na rne systemy za pomoc kalkulatora (Windows) .........................27
Konwersja liczb na rne systemy za pomoc kalkulatora (Linux)...............................28
Przeliczanie liczb na rne systemy za pomoc konwertera liczb
(MS-DOS, Windows, Linux) .................................................................................29
Rozdzia 7. Jak pisa programy, ktrych nie bdzie mona edytowa?............... 155
Wstp .................................................................................................................. 155
Sprawdzanie wielkoci pliku.................................................................................. 155
Data i czas modyfikacji pliku ................................................................................. 157
Sumy kontrolne .................................................................................................... 158
Rozbijanie stringw .............................................................................................. 160
Kodowanie stringw i zmiennych liczbowych ......................................................... 161
Spis treci
5
Program kompresujcy pliki wykonywalne ............................................................. 168
Zapoznanie si z programem AsProtect .................................................................. 169
Podsumowanie ..................................................................................................... 171
Skorowidz...................................................................................... 291
Rozdzia 9.
Ukrywanie
tajnych informacji
Wstp
W tym rozdziale opisz kilka sposobw na ukrywanie tajnych informacji na dysku. Nie
mam zamiaru opisywa jakich programw do szyfrowania danych itp., gdy s one na
tyle popularne, e do wielu z nich powstay specjalne deszyfratory, amice kod i wydobywajce z zaszyfrowanych plikw cenne dane. Oczywicie nie wszystkie programy
szyfrujce da si tak atwo pokona. Jednak w tym rozdziale mam zamiar opisa nieco inne, do oryginalne sztuczki, pozwalajce ukry nasze cenne dane. Jeli ukrywanie tajnych informacji jest dla Ciebie interesujcym tematem, nie zapomnij przeczyta
take rozdziau 10., w ktrym opisz do ciekawy sposb na ukrywanie informacji
na dyskietce.
200
Monochromatyczny
16 kolorw
256 kolorw
8 (1 bajt)
24 (3 bajty)
Pojawia si drobne pytanko: jak mona ukrywa informacje w plikach BMP? Odpowied brzmi: atwiej ni mylisz. Na potrzeby ksiki wymyliem dwa ciekawe sposoby ukrywania informacji w plikach BMP. Pierwszy z nich to drobna ingerencja w nagwek, a drugi sposb to przeksztacenie pliku binarnego w plik BMP.
Skoro ju wpisae jakie hasa, zapisz zmiany dokonane w pliku. A teraz najprzyjemniejsza cz, czyli ingerencja w nagwek. Co chcemy zmieni w nagwku? Dokonamy w nim zmiany wymiarw rysunku, tj. zmienimy rozmiar rysunku z 200100 pixeli
na 100200 pixeli. Dziki temu piksele inaczej si uo i utworz chaotyczn paplanin punktw. Na rysunku 9.2 zaprezentowano wygld pliku BMP po dokonaniu
ingerencji w nagwek.
Rysunek 9.2.
Plik BMP
ze zmodyfikowanym
nagwkiem
201
Powstaje pytanie: jak dokona zmian w nagwku pliku BMP? Wystarczy plik BMP
otworzy w programie Hex Workshop i pod odpowiednimi offsetami zmieni wartoci.
Szeroko obrazu jest zapisana pod offsetem , a wysoko pod offsetem .
Wysoko i szeroko obrazu moe wynosi maksymalnie 65 535 pikseli, a wic mamy
do czynienia z liczb 16-bitow (czyli pod offsetem znajduje si starszy bajt szerokoci obrazu w naszym wypadku jest to zero a pod offsetem jest zapisany
starszy bajt wysokoci obrazu w naszym wypadku rwnie jest to zero).
Jednak z modyfikacj nagwka nie naley przesadza. Jeli np. zdefiniujemy zarwno
wysoko, jak i szeroko pliku jako 200 pikseli, takiego pliku nie bdzie mona otworzy w adnym programie graficznym, gdy zostanie on uznany za uszkodzony (podczas odczytywania przez program opisw poszczeglnych pikseli nagle pojawi si koniec pliku, mimo e w nagwku zostay zdefiniowane wiksze wymiary ni s moliwe
do odczytania; niektre programy w takiej sytuacji zgosz bd, inne z kolei odczytaj
poprawnie plik, wypeniajc brakujce miejsca kolorem czarnym). Inna puapka, ktra
moe na nas czyha, to dobranie nieodpowiedniego rozmiaru pliku. Jeli oryginalny plik
ma wymiary 200100 pikseli, a Ty zmienisz wymiary np. na 40050 pikseli, istnieje
prawdopodobiestwo, e rysunek bdzie zawiera dwukrotnie napisane te same hasa,
majce naturaln szeroko, ale wysoko o poow mniejsz ni w oryginalnym pliku. Mimo to bez wikszych problemw bdzie je mona odczyta! Ten efekt wystpuje
w wypadku edycji pliku 16-kolorowego, 256-kolorowego lub 24-bitowego. W przypadku plikw monochromatycznych efekt ten moe nie wystpi (chyba e oba wymiary oryginalnego pliku byy podzielne przez 8). Dlatego nie naley dobiera rozmiarw
tak, aby pierwszy rozmiar by np. 2, 3, 4 razy wikszy od oryginalnego a drugi rozmiar 2, 3, 4 razy mniejszy od oryginalnego. O ile w przypadku plikw monochromatycznych ten efekt pojawia si sporadycznie, o tyle w plikach zawierajcych
wiksz ilo kolorw wystpuje niemal zawsze.
202
)4/"!
#-75
*+15 7"&16$2-'
::::;<=>?@;ABCDB;=EF!;
#0(G;B!F@;HDHB;=IAJHE+AJ>C;HJ>@E;@?>@;=?IKLAJ+3
K?ILAJM;::::
Rysunek 9.3 prezentuje plik BMP, ktry zosta wygenerowany na podstawie powyszego pliku tekstowego.
Rysunek 9.3.
Plik BMP, w ktrym
umieszczono
plik tekstowy
Niestety ten plik w ksice wyglda tak adnie tylko dlatego, e musiaem go zapisa
w 256 odcieniach szaroci. Tymczasem mj program zapisuje go w 256 kolorach, widoczne s wic takie kolory jak zielony, czerwony, ty, niebieski itp.
Listing 9.2 zawiera kod rdowy programu do generowania plikw BMP.
Listing 9.2. kodujbmp.pas program, ktry z wanych plikw generuje pliki BMP
IEIC;0E!DB>?@?(
DLL;+IH
NI
;EAKEI!;O;KJC?IJ;=>?@D;(P
;EA$KEI!;O;QRQ;;;;;;;;;;;;;;P
;LAHKEI!;O>;ELHHF?+3;%BHEK;K;=>?@D;(;HE;LC?+?P
;EAC?I77>EF?FH;OK?>@EL+;=>?@D;77P
;=G=*G=?>;E;%JH;OAC?FF;=>?@EK;77S(S@E!DB%C=:!HP
;>?@G>?@*LHI?F;O&AKJ;=>?@EKP
IE+!DI;&AKJ>?@EK
(?F
;+>IL+I
;KI?H<T0E!DBE(;N;:#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<+M;C?F;LA@?K?+ATM
;KI?H>F<TIEIC;HKEIAJ;=>?@;(G;K;@HEIJC;E=?LJ;@E>EIEK;=ELA+AE>FJ+3;=?@L>?;HE;TM
;KI?H>F<TAKIHEL+;?FFE;=>?@D:;
LH;HE;!EL+;+?@KJ;L=ELE%;F;D@IJKF?;TM
;KI?H>F<T?FEIC+B?:;EA;HJC;+ALC?;=EKLHB;+>@?C;?FHILDB+;=>?@?;(TM
;KI?H>F<TIEIC;AELH>;F=?LFJ;F;=EHIA%J;@L?A@?;,!J+B;>?@EK;(?FIFJ+3;!>TM
;KI?H>F<TKJ!KF?+HK;">?EF:;&?;ALHIAAEFE;!E;F?E;=IK;DHEIL@?+3TM
;KI?H>F
;>?@IC9HI<M
;?;=>?@TT;H3F;(?F
;;;;=H
;;;;;;;;KI?H<TE!B;FAK;=>?@D;@HEIJ;+3+LA;A@E!EK+;TM
203
204
205
(,&
;;IF!EC?A
;;&AKJ>?@EK
;;EAC?I772@ILEAC?I>?@D77<T!F:HXHTM
;;
@?EAC?I<EAC?I77M
;;2HKEIA>?@?
;;0E=?DB&>EK@
;;0E=?DB>?@77
,&:
Program jest dosy ciekawy, ale jeli otworzymy plik BMP w Notatniku, zobaczymy
zawarto wklejonego do niego pliku tekstowego. Ten program nadaje si jedynie do
doklejania do bitmap plikw binarnych, np. plikw z rozszerzeniem EXE. Jednak nic
nie stoi na przeszkodzie, aby doda do programu malutki algorytm szyfrujcy zapisywane dane. Jeli masz zamiar ulepsza ten program, to warto zmieni procedur czytania i zapisywania danych do pliku, gdy czytanie po 1 bajcie jest do wolne, szczeglnie, jeli program odczytuje due pliki. Naley tak zmieni program, aby odczytywa
naraz 1 000 znakw i tyle samo zapisywa. Wtedy program bdzie duo szybciej wykonywa swoje zadanie. Nawet jeli nie chcesz ukrywa plikw za pomoc tego programu, uruchom go, gdy czasami potrafi wygenerowa naprawd ciekawe pliki BMP.
Moesz dodatkowo zwikszy bezpieczestwo zakodowanego pliku, dodajc ten plik
jako nowy zasb do dowolnego pliku EXE za pomoc programu Resource Hacker. Aby
to zrobi, naley:
1. Uruchomi program Resource Hacker.
2. Otworzy w tym programie dowolny plik wykonywalny.
3. Z menu Action wybra polecenie Add a new resource.
4. Odnale na dysku nasz plik BMP zawierajcy zakodowany plik.
5. Poda jak nazw zasobu np. Tajne1.
6. Klikn przycisk Add resource.
7. Zapisa zmiany dokonane w pliku.
Listing 9.3 prezentuje rdo programu, ktry z pliku BMP wyciga wczeniej zakodowany plik.
Listing 9.3. odkodujb.pas program, ktry z plikw BMP wyciga plik zakodowany programem
kodujbmp.pas
IEIC;2!@E!DB(
LL;+IH
NI;G*?>;E;%JH
;;;;>?@G>?@*LHI?F
;;;;LAHKEI!
;;;;%JH
;;;;KEI!
;;;;(G9(%JH
;;;;EAC?I(>EF?FH
;;;;EAC?I77>EF?FH
206
207
(?F
;;;EI;?;HE;EAC?I77;!E;(?F
;;;;;;;I!<=G!M
;;;;;;;KI?H<=*G!M
;;;F!
F!
IE+!DI;'C@F?B>?@?
(?F
;;+>EL<=M
;;+>EL<=*M
F!
(,&
;;&AKJ>?@EK
;;EAC?I(2@ILEAC?I>?@D<>?@M
;;2HKEIA>?@?
;;2!+AJHB&>EK@
;;J+?BF
;;'C@F?B>?@?
,&:
Program ma jedn wad: jeli prbujemy nim wycign dane z pliku BMP, ktry
nie zosta utworzony poprzednim programem, to albo zostan odczytane jakie miecie, albo dojdzie do zatrzymania pracy programu. Aby si przed tym zabezpieczy,
naley tak przerobi program, aby znakowa pliki BMP zawierajce dane np.
oprcz nagwka informujcego, ile nastpnych bajtw w pliku BMP to zawarto innego pliku, umieszczona byaby np. 4-znakowa sygnatura. Program dekodujcy po natrafieniu na plik nie posiadajcy tej sygnatury informowaby, e jest to zwyky plik BMP,
ktry nie zawiera w sobie cennych danych.
JPG
Pliki JPG to skompresowane pliki bitmapowe. Jest to do popularny typ plikw graficznych, gdy mona za jego pomoc kompresowa bitmapy, stosujc rne wspczynniki kompresji (im wikszy wspczynnik, tym wicej miejsca na dysku zajmuje
plik, ale zarazem jego jako jest lepsza). Pliki JPG bardzo dobrze nadaj si do kompresji rnych zdj. Niestety sztuczka polegajca na ingerencji w nagwek nie jest
dobra, gdy w zmodyfikowanym pliku widoczne s fragmenty wyrazw z oryginalnego
pliku (patrz rysunek 9.4).
208
Rysunek 9.4.
Plik JPG
ze zmodyfikowanym
nagwkiem
GIF
Pliki GIF, podobnie jaki pliki JPG, to skompresowane mapy bitowe. Jednak pliki GIF
maj inny algorytm kompresji i bardziej nadaj si do kompresowania bitmap, ktre zostay stworzone w jakim programie graficznym. Niezbyt dobrze natomiast nadaj si
do kompresji zdj, gdy maksymalnie mog zawiera 256 kolorw, a minimalnie 16.
Pliki GIF rwnie nie nadaj si do przechowywania tajnych informacji, gdy podobnie jak w plikach JPG widoczne s napisy z oryginalnego pliku, o czym wiadczy rysunek 9.5.
Rysunek 9.5.
Plik GIF
ze zmodyfikowanym
nagwkiem
PCX
Pliki PCX to skompresowane pliki bitmapowe. Nie s tak skuteczne jak formaty GIF
i JPG, ale za to maj bardzo prosty algorytm kompresji. Niestety, obecnie te pliki s
ju bardzo rzadko uywane; zapis bitmapy do tego formatu by jeszcze moliwy w programie Paint w wersji dla Windows 3.11, ale ju kolejne wersje tego programu dla systemw Windows 9x/Me/XP nie obsugiway formatu PCX. Niestety sztuczka ze zmodyfikowaniem nagwka rwnie nie jest dobrym pomysem, o czym wiadczy rysunek 9.6.
Rysunek 9.6.
Plik PCX
ze zmodyfikowanym
nagwkiem
209
TIFF
Jest to format grafiki bitmapowej. Pliki TIFF po czci nadaj si do wykorzystania ich
w sztuczce z ingerencj w nagwek, gdy chyba wszystkie programy graficzne taki
plik uznaj za uszkodzony.
WMF
Format WMF jest dla grafiki wektorowej takim standardem, jakim dla grafiki rastrowej
jest format BMP. Mimo e rne programy do tworzenia grafiki wektorowej zapisuj
grafiki we wasnym formacie, to wikszo programw pozwala na zapisanie grafiki
do pliku WMF. Z naszego punktu widzenia pliki WMF s mao uyteczne, gdy po dokonaniu ingerencji w nagwek plik i tak wywietla oryginalne napisy, o czym wiadczy
rysunek 9.7.
Rysunek 9.7.
Plik WMF
ze zmodyfikowanym
nagwkiem
210
a program nadal dziaa poprawnie. Dotyczy to rwnie plikw COM. Jednak przed
dodaniem na kocu pliku EXE pewnych informacji warto jest wykona kopi takiego
pliku. Aby do pliku EXE dopisa dane, naley wykona nastpujce czynnoci:
1. Otworzy plik EXE w programie Hex Workshop.
2. Wykona kopi pliku. Najlepiej z menu File wybra opcj Save As i zapisa
wklejony tekst. Wybierz pozycj CF_TEXT. Upewnij si, czy ptaszek przy
polu wyboru z napisem Interpret as a hexadecimal string nie jest zaznaczony.
Mona rwnie do pliku EXE dopisa zawarto innego pliku binarnego. Aby tego dokona, naley wykona nastpujce czynnoci:
1. W programie Hex Workshop otworzy plik EXE oraz plik, ktry mamy zamiar
211
212
Pliki DOC
Jest to do popularny typ plikw. Pliki te tworzone s przez program Microsoft Word,
ktry jest najpopularniejszym edytorem tekstu w systemie Windows. Pliki DOC otwierane s przez kilka innych programw, np. StarOffice lub OpenOffice dla systemw Linux i Windows czy choby zwyky WordPad, doczony do systemu operacyjnego Windows. Pliki DOC oprcz tekstu mog zawiera rwnie rysunki i wykresy.
Aby uszkodzi plik DOC, nie trzeba si wcale natrudzi. Wystarczy otworzy taki
plik w programie Hex Workshop (lub dowolnym innym edytorze plikw binarnych)
i zmieni pierwszy bajt. Pierwszy bajt powinien mie warto , ale gdy zmienimy t
warto na inn, program albo poinformuje, e plik jest uszkodzony, albo potraktuje
plik jako plik tekstowy i wywietli nieczytelne cigi znakw (krzaczki). Aby to naprawi, naley plik otworzy w programie Hex Workshop i pierwszy bajt z powrotem
zmieni na .
Pliki DOC nie nadaj si do ukrywania danych, gdy tekst w plikach DOC nie jest kodowany. Mimo e na ekranie pojawi si krzaczki, midzy nimi bdzie widoczny
zwyky tekst (patrz rysunek 9.8).
Rysunek 9.8.
Uszkodzony
plik DOC
213
Pliki EXE
Pliki EXE s plikami wykonywalnymi. Uszkodzenie plikw EXE nie jest trudne. Pliki
EXE posiadaj wasny nagwek, ktry zaczyna si od znakw
(lub
). Wystarczy
zmieni te 2 znaki na jakie inne, np. XX, i plik EXE bdzie uznawany za uszkodzony. Na rysunku 9.9 przedstawiono komunikat, jaki pojawi si przy prbie uruchomienia uszkodzonego pliku EXE.
Rysunek 9.9.
Komunikat
pojawiajcy si
podczas prby
uruchomienia
uszkodzonego
pliku EXE
Przed uszkodzeniem pliku EXE mona do niego doda jak bitmap, zawierajc np.
hasa do kont pocztowych. Po uszkodzeniu pliku edytory zasobw nie otworz go, gdy
uznaj go za uszkodzony.
Pliki ZIP
Pliki ZIP s to pliki popularnego programu pakujcego WinZip, sucego do pakowania innych plikw, czyli zmniejszania ich objtoci za pomoc skomplikowanych algorytmw. Plik ZIP moe zawiera jeden skompresowany plik lub wicej plikw. Pliki ZIP
bardzo dobrze nadaj si do ukrywania tajnych informacji, gdy mona spakowa kilka
wanych plikw do jednego pliku ZIP, a potem uszkodzi tylko jeden plik ZIP nie
trzeba po kolei uszkadza wielu plikw. Pliki ZIP, podobnie jak pliki poprzednio omwione, posiadaj nagwek. Dwa pierwsze bajty pliku PK informuj, i jest to plik ZIP.
Po zmianie tych bajtw na dowolne inne plik automatycznie zostaje uszkodzony. Niektre programy takowy plik otworz i nawet wywietl pliki, jakie zostay skompresowane, ale ju ich nie rozpakuj; z kolei inne programy w ogle nawet nie otworz takiego pliku.
Inne pliki
Nie sposb tutaj omwi wszystkich moliwych plikw, ktre mona uszkodzi. Jednak
chyba zauwaye pewien uniwersalny wzorzec: zwykle wystarczy zamieni 2 pierwsze
bajty na inne, aby plik nie mg by otworzony przez program, w ktrym zosta utworzony. Zachcam do dalszego eksperymentowania!