You are on page 1of 20

IDZ DO

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

Wikszo dostpnych obecnie aplikacji pozwala uytkownikowi dokonywa


rozmaitych modyfikacji: od zmian wygldu i dodawania nowych ikon poczwszy,
na zapisywaniu wasnych makrodefinicji skoczywszy. Nie zawsze to wystarcza.
eby naprawd zmusi program do dziaania zgodnie z naszymi oczekiwaniami,
trzeba wej nieco gbiej w jego kod.
Dziki tej ksice poznasz wiele technik, ktre umoliwi Ci samodzieln modyfikacj
rozmaitych programw, zarwno aplikacji uytkowych, jak i gier. Dowiesz si,
jak oszuka gr, jak zmienia teksty w programach, jak odnajdywa furtki
pozostawione przez programistw. A przy okazji poznasz tajniki programowania,
ktre sam bdziesz mg wykorzysta w swojej praktyce.
Poznasz rne systemy liczbowe i nauczysz si przelicza wartoci pomidzy nimi
Nauczysz si modyfikowa kody wynikowe programw za pomoc Hex Workshop
i kHexEditor
Dowiesz si, jak zmienia zasoby (ikony, teksty, skrty klawiaturowe) uywajc
programw Resource Hacker, EXEScope i PE Resource Explorer
Nauczysz si edytowa programy wewntrznie skompresowane
Dowiesz si, jak zabezpiecza wasne aplikacje przed modyfikacjami
Poznasz sposoby oszukiwania gier
Dowiesz si, jak odczytywa z dyskietek ukryte informacje
Poznasz podstawy pisania wasnych kompilatorw
Do ksiki doczony jest CD-ROM zawierajcy przydatne narzdzia i kody rdowe.
Vademecum hakera to ksika, dziki ktrej wykonasz w programach zmiany, ktre
wydaj si niewykonalne. Zadziwisz siebie i swoich znajomych!

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 2. Hex Workshop ................................................................................. 31


Pierwsze kroki w programie Hex Workshop..............................................................31
Wygld programu Hex Workshop ............................................................................34
Menu programu Hex Workshop .........................................................................36
Pasek narzdzi (toolbar).....................................................................................40
Zapoznanie si z niektrymi narzdziami programu .............................................43
Troch praktyki ......................................................................................................47
Szukanie tekstu i zastpowanie go wasnym tekstem ............................................47
Szukanie i modyfikowanie danych liczbowych ....................................................49
Porwnywanie plikw .......................................................................................51
wiczenia z operacjami bitowymi ......................................................................51
Ciekawe zastosowanie programu Hex Workshop .......................................................54
Hex Workshop i Windows 3.1x................................................................................56
Hex Workshop i Linux ............................................................................................57

Rozdzia 3. kHexEdit ......................................................................................... 59


Pierwsze kroki w programie kHexEdit ......................................................................59
Wygld programu kHexEdit ....................................................................................62
Menu programu kHexEdit..................................................................................63
Pasek narzdzi (toolbar).....................................................................................67
Zapoznanie si z niektrymi narzdziami programu .............................................68

Vademecum hakera. Edycja plikw binarnych


Troch praktyki ......................................................................................................75
Szukanie tekstu i zastpowanie go wasnym tekstem ............................................75
Szukanie i modyfikowanie danych liczbowych ....................................................76
Porwnywanie plikw .......................................................................................79

Rozdzia 4. Resource Hacker ............................................................................. 83


Ostrzeenie ............................................................................................................83
Pierwsze kroki w programie Resource Hacker ...........................................................83
Resource Hacker menu .................................................................................86
Edycja poszczeglnych zasobw ........................................................................87
Praktyczne przykady wykorzystania programu Resource Hacker.............................. 119
Spolszczenie programu .................................................................................... 119
Migajca ikona ............................................................................................... 119
Nauka pisania plikw RC ................................................................................ 120

Rozdzia 5. EXEScope i PE Resource Explorer .................................................. 121


Ostrzeenie .......................................................................................................... 121
Pierwsze kroki w programie EXEScope .................................................................. 121
EXEScope menu ........................................................................................ 123
EXEScope pasek narzdzi ........................................................................... 125
Ga Header........................................................................................................ 126
Ga Import ........................................................................................................ 126
Praktyczne wykorzystanie informacji zawartych w gazi Import .............................. 127
Sprawdzenie deklaracji w programie API Text Viewer,
doczonym do Visual Basic .......................................................................... 128
Przeszukanie zasobw MSDN ......................................................................... 129
Ga Resource..................................................................................................... 130
Pierwsze kroki w programie PE Resource Explorer.................................................. 130
Menu programu PE Resource Explorer ............................................................. 131
Pasek narzdzi (toolbar)................................................................................... 134
Tworzenie plikw RES.......................................................................................... 134
Ciekawsze zastosowania programu PE Resource Explorer ........................................ 135
Podsumowanie ..................................................................................................... 137

Rozdzia 6. Pliki wewntrznie skompresowane ................................................. 139


UPX.................................................................................................................... 139
Rozpakowywanie plikw spakowanych programem UPX................................... 141
Pozostae parametry programu UPX ................................................................. 142
UPX dla Linuksa ............................................................................................ 143
Porwnanie kilku metod kompresji w programie UPX ....................................... 145
AsPack ................................................................................................................ 146
Parametry programu AsPack............................................................................ 147
Rozpakowywanie plikw spakowanych programem AsPack............................... 148
PkLite.................................................................................................................. 149
Pe-Pack ............................................................................................................... 151
Rozpakowywanie plikw spakowanych programem Pe-Pack.............................. 151
Pliki skompresowane nieznanym programem pakujcym.......................................... 152
Podsumowanie ..................................................................................................... 153

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

Rozdzia 8. Oszukiwanie gier............................................................................ 173


Co to jest plik z zapisem stanu gry? ........................................................................ 173
Zapoznanie si z gr Labirynt ............................................................................. 174
Jak zlokalizowa plik z zapisem stanu gry? ............................................................. 175
Edycja plikw z zapisem stanu gry ......................................................................... 176
Kilka porad na temat edycji plikw z zapisem stanu gry ........................................... 176
Tworzenie edytora plikw z zapisem stanu gry ........................................................ 178
Edycja high scores ................................................................................................ 181
Podmiana plikw .................................................................................................. 181
Struktura plikw z poziomami................................................................................ 182
Co to s Tipsy?..................................................................................................... 187
Pisz gr, jak uodporni j na oszustwa?................................................................. 188
Pliki z zapisem stanu gry ................................................................................. 188
Pliki high scores ............................................................................................. 193
Podmiana plikw ............................................................................................ 195
Dokadne poznanie struktury pliku.................................................................... 195
Sztuczki ......................................................................................................... 196
Ciekawy efekt ...................................................................................................... 196
Jak mona ulepszy gr? ....................................................................................... 197

Rozdzia 9. Ukrywanie tajnych informacji.......................................................... 199


Wstp .................................................................................................................. 199
Jak w plikach BMP mona ukry tajne informacje, np. haso?................................... 199
Ingerencja w nagwek pliku BMP ................................................................... 200
Przeksztacanie pliku binarnego w plik BMP..................................................... 201
Ukrywanie tajnych informacji w innych plikach graficznych .................................... 207
JPG ............................................................................................................... 207
GIF................................................................................................................ 208
PCX .............................................................................................................. 208
TIFF.............................................................................................................. 209
WMF............................................................................................................. 209
Jak w plikach EXE ukry tajne informacje? ............................................................ 209
Celowe uszkadzanie plikw ................................................................................... 212
Pliki DOC ...................................................................................................... 212
Pliki EXE....................................................................................................... 213
Pliki ZIP ........................................................................................................ 213
Inne pliki........................................................................................................ 213

Rozdzia 10. Dyskietka...................................................................................... 215


Wstp .................................................................................................................. 215
Jak edytowa zawarto sektorw?......................................................................... 216
Sektor zerowy ...................................................................................................... 217
Ukrywanie informacji na dyskietce......................................................................... 219
Jak dziaa ScanDisk?............................................................................................. 220
Budowa tablicy alokacji plikw.............................................................................. 222
Atrybuty pliku ................................................................................................ 223
Czas utworzenia pliku ..................................................................................... 224
Data utworzenia pliku...................................................................................... 224
Numer sektora, w ktrym rozpoczyna si plik.................................................... 225
Co to jest VolumeID?............................................................................................ 226
Numer seryjny dyskietki........................................................................................ 226
Jak odzyska z dyskietki skasowany plik? ............................................................... 226

Vademecum hakera. Edycja plikw binarnych


Jak oszuka program Direct Connect ...................................................................... 227
Krtkie wprowadzenie..................................................................................... 227
Jak oszuka program Direct Connect?............................................................... 228
Modyfikowanie plikw na dysku twardym ........................................................ 230
Modyfikowanie plikw na RAMdysku.............................................................. 231

Rozdzia 11. Poprawianie niedorbek kompilatorw............................................ 233


Wstp .................................................................................................................. 233
Turbo Pascal: Run Time Error 200 ......................................................................... 233
Naprawianie pliku EXE ................................................................................... 234
Naprawianie moduu crt................................................................................... 235
Jak korzysta z procedury Delay?..................................................................... 235
Pisanie wasnej poprawki (atki) .................................................................... 236
Visual Basic: ikona w programach bez okna dialogowego ........................................ 238
Delphi: MessageDlg.............................................................................................. 239
Visual Basic: usuwanie zbdnych informacji ........................................................... 241
FPC dla Windows, XBasic: brak zasobu VersionInfo ............................................... 241
Dodawanie zasobu do pliku rdowego............................................................ 242
Dodanie zasobu do pliku EXE za pomoc programu Resource Hacker................. 243
Jak tworzy pliki RES, nie majc programu RC.EXE? ....................................... 243
Wikszo kompilatorw pod Windows: wersja jzykowa ....................................... 244
Delphi zmiana wygldu kontrolek...................................................................... 246
Bitmapy dla kontrolki DirListBox..................................................................... 247
Bitmapy dla kontrolki DriveListBox ................................................................. 248
Wszystkie kompilatory w systemie Windows: spolszczanie programu STUB............. 248

Rozdzia 12. Pisanie wasnego kompilatora ........................................................ 251


Wstp .................................................................................................................. 251
Pliki COM ........................................................................................................... 251
Kompilator generujcy pliki COM ......................................................................... 253
Jak doda profesjonalny nagwek do pliku COM? .................................................. 258
Jak tworzy optymalne pliki COM?........................................................................ 260
Zoptymalizowany kompilator................................................................................. 263
Pliki EXE (dla MS-DOS) ...................................................................................... 268
Konwerter plikw COM na EXE............................................................................ 268
Pliki EXE (dla Windows) ...................................................................................... 272
Bezbolesne generowanie plikw EXE ................................................................. 272
Bezbolesne generowanie plikw wykonywalnych dla Linuksa ............................... 273

Dodatek A Systemy liczbowe .......................................................................... 275


Liczby dodatnie (od 0 do 255) ............................................................................... 275
Liczby ujemne (od 128 do 0) ............................................................................... 282

Dodatek B Zawarto pyty CD-ROM ............................................................... 287


Uwagi oglne ....................................................................................................... 287
FPC............................................................................................................... 288
Hex................................................................................................................ 288
Inne ............................................................................................................... 288
Programy kompresujce .................................................................................. 289
Przykady....................................................................................................... 289
Tools ............................................................................................................. 289
Programy dekompresujce............................................................................... 290
Edytory zasobw ............................................................................................ 290

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.

Jak w plikach BMP mona ukry


tajne informacje, np. haso?
Pliki BMP posiadaj do prost budow: na pocztku pliku znajduje si nagwek,
w ktrym zapisane s rne informacje dotyczce pliku (np. liczba kolorw, wymiary
pliku itp.). Dalej umieszczone s ju tylko informacje o poszczeglnych pikselach. W zalenoci od rodzaju pliku BMP jednemu pikselowi odpowiada okrelona liczba bitw
(szczegy przedstawiono w tabeli 9.1). W plikach piksele s zapisywane w do dziwnej kolejnoci. Wydawaoby si, e powinny by zapisywane od lewej do prawej i z gry do dou. Niestety tak nie jest, gdy s zapisywane z lewej do prawej, ale z dou do
gry! Jednak to nie jest dla nas a taka istotna informacja.

200

Vademecum hakera. Edycja plikw binarnych

Tabela 9.1. Rne typy plikw BMP


Typ pliku BMP

Ilo bitw opisujca jeden piksel

Monochromatyczny

16 kolorw

256 kolorw

8 (1 bajt)

24-bitowy (16,7 miliona kolorw)

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.

Ingerencja w nagwek pliku BMP


Zanim bdziemy ingerowa w nagwek pliku BMP, naley ten plik utworzy. Do tego
celu wystarczy nawet najprostszy program obsugujcy pliki BMP, np. Paint. W programie tym naley zdefiniowa rozmiar rysunku, np. 100200 pixeli (wane: oba te wymiary musz by od siebie rne). Rysunek zapiszemy jako monochromatyczny, gdy
im wicej kolorw, tym wicej miejsca na dysku zajmuje plik. Kiedy rysunek zosta ju
zapisany, naley umieci w nim jaki napis, np. haso do konta pocztowego. Mona
utworzy tyle napisw, ile si zmieci nie ma adnych ogranicze. Wygld przykadowego pliku BMP zaprezentowano na rysunku 9.1.
Rysunek 9.1.
Oryginalny 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

Rozdzia 9. Ukrywanie tajnych informacji

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.

Przeksztacanie pliku binarnego w plik BMP


Powyszy sposb jest do ciekawy, ale ma jedn wad: nie mona w pliku BMP o wymiarach 800600 pikseli zapisa zbyt duo informacji (raczej nikt normalny nie trzyma
na dysku plikw BMP o wymiarach np. kilka tysicy pikseli na kilka tysicy pikseli).
Poza tym taki plik (800600 pikseli), w ktrym da si zapisa kilkanacie (kilkadziesit) hase, zajmuje na dysku do sporo miejsca (1 MB). Jednak jest te inny sposb na
ukrycie wanych informacji w pliku BMP: ot mona dany plik tekstowy (lub binarny)
przeksztaci w plik BMP, tj. wstawi typowy nagwek pliku BMP, zdefiniowa odpowiednie rozmiary, a dalej skopiowa zawarto naszego pliku. Po takowym sklejeniu
otworzenie pliku BMP w dowolnym programie graficznym powinno by moliwe, tyle
e pojawiby si may problem: znw plik BMP wygldaby do dziwnie (widoczne byyby same chaotycznie rozmieszczone punkty). W listingu 9.1 zaprezentowano przykadowy plik tekstowy (plik ten wygenerowaem prostym programem tworzcym losowe
pliki tekstowe).
Listing 9.1. Fragment pliku dane.txt

      
 !"#$% &'(%()%*
+%$",
&-  .+/-/012 +32 )344515"

202

Vademecum hakera. Edycja plikw binarnych


60)) %7,8 1 %&
( 214-6
'76*""16%,%+67!
,(5//3' 4 7 /
'% 1/00)6 **$ +/ &61 4"! /)$4&0
6  %94 6$5. /23 '%  !7,&

 )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
;EA KEI!;O;KJC?IJ;=>?@D;(P
;EA$KEI!;O;QRQ;;;;;;;;;;;;;;P
;LAHKEI!;O>;ELHHF?+3;%BHEK;K;=>?@D;(;HE;LC?+?P
;EAC?I7 7>EF?FH;OK?>@EL+;=>?@D;7 7P
;=G=*G= ?>;E ;%JH;OAC?FF;=>?@EK;7 7S(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?F EIC+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

Rozdzia 9. Ukrywanie tajnych informacji


;;;;;;;;I!>F<>?@M
;;;;DFH?>;>?@TT
;F!
;>?@*IC9HI<*M
;? ;>?@*TT;H3F;(?F
;;;=H
;;;;;KI?H<TE!B;FAK;=>?@D;(;@HEIJ;+3+LA;DHKEIAJ+;TM
;;;;;I!>F<>?@*M
;;;DFH?>;>?@*TT
;F!
F!
O
@?;CB;%J+;KJC?IJ;=>?@D;(P
IE+!DI;
@?EAC?I< >EF?FHM
NI; G$I>
(?F
;;;  U*;OF>EK@;?F EICDB+J;?>;C;E!+AJH+;AF@EKP
;;; ?FH<LVIH< MM
;;;EA IEDF!< M
;;;$?FH< SEA M
;;;EA$IEDF!<$M
;;;LAH Q<EA WEA$MUUEA$W*
;;;? ;ILAH*WIEAJU*;H3F;ILAHILAHQ*WIEAJ
F!
1DF+H?EF;2@ILEAC?I>?@D7 7<>?@ LHI?FM>EF?FH
NI;  ?>;E ;%JH
(?F
;LL?F< G>?@ M
;ILH< M
;2@ILEAC?I>?@D7 7 ?>L?A< M
;+>EL< M
F!
IE+!DI;2HKEIA>?@?
(?F
;;LL?F<=G=>?@M
;;LL?F<=*G=>?@*M
;;LL?F<=GT@E!DB%C=:!HTM
;;ILH<=M
;;IKI?H<=*M
;;ILH<=M
F!
IE+!DI;0E=?DB&>EK@
NI;>EF?FH
;;;;!%JH
;;;;9>EF?FH
;;;; KEI!
(?F
;; EI;;HE;;!E;I!<=G!M
;;!;KI?H<=*G!M;O(P
;;!88;KI?H<=*G!M;OP
;;O?>@EL+;=>?@D;K=?LAP
;;9ILAHUIEAC?IHXHU#8 U

203

204

Vademecum hakera. Edycja plikw binarnych


;;!9;CE!;*5
;;KI?H<=*G!M
;;!9;!?N;*5
;;KI?H<=*G!M
;; 9;!?N;55
;;! ;CE!;*5
;;KI?H<=*G!M
;;! ;!?N;*5
;;KI?H<=*G!M
;; EI;;HE;*;!E
;;%?F
;;;;I!<=G!M
;;;;KI?H<=*G!M
;;F!
;;OIEA; P
;;!>E<IEAXM
;;KI?H<=*G!M
;;!3?<IEAXM
;;KI?H<=*G!M
;;!#
;;KI?H<=*G!G!M
;;OIEA;$P
;;!>E<IEAJM
;;KI?H<=*G!M
;;!3?<IEAJM
;;KI?H<=*G!M
;; EI;;HE;;!E;I!<=G!M
;; EI;;HE;#5 ;!E;%?F
;;;;I!<=G!M
;;;;KI?H<=*G!M
;;F!
;;+>EL<=M
F!
IE+!DI;0E=?DB>?@7 7
NI;!%JH
;;;;?>EF?FH
(?F
;;;;;!>E<LAHM
;;;;;KI?H<=*G!M
;;;;;!3?<LAHM
;;;;;KI?H<=*G!M
;;;;; EI;?;HE;EAC?I7 7;!E;(?F;OA=?LA;AKIHEL+;=>?@DP
;;;;;;;;I!<=G!M
;;;;;;;;KI?H<=*G!M
;;;;;F!
;;;;;+>EL<=M
;;;;; EI;?;HE;LAH;!E;(?F;OA=?LA;>ELEK;LC?+?P
;;;;;;;!IF!EC<*5M
;;;;;;;KI?H<=*G!M
;;;;;F!
;;;;;+>EL<=*M
F!

Rozdzia 9. Ukrywanie tajnych informacji

205

(,&
;;IF!EC?A
;;&AKJ>?@EK
;;EAC?I7 72@ILEAC?I>?@D7 7<T!F:HXHTM
;;
@?EAC?I<EAC?I7 7M
;;2HKEIA>?@?
;;0E=?DB&>EK@
;;0E=?DB>?@7 7
,&:

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?I7 7>EF?FH

206

Vademecum hakera. Edycja plikw binarnych


IE+!DI;&AKJ>?@EK
(?F
;+>IL+I
;KI?H<TE!0E!DB(;N;:#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<+M;C?F;LA@?K?+ATM
;KI?H>F<TIEIC;KJ+?;A;=>?@EK;(;=>?@?;A@E!EKF;=IEICC;02
(TM
;KI?H>F<T//;=IEIC;F?;E!IEAF?;AKJ@>J+3;=>?@EK;(;E!;=>?@EK;(;LHKEIAEFJ+3TM
;KI?H>F<T=IAA;=IEIC;02
(Y;IAJ;AKJ@>J+3;=>?@+3;(;=IEIC;CEA;L?;K?LA+YTM
;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;=>?@DG;@HEIJ;+3+LA;E!@E!EK+;TM
;;;;;;;;I!>F<>?@M
;;;;DFH?>;>?@TT
;F!
;>?@*IC9HI<*M
;? ;>?@*TT;H3F;(?F
;;;=H
;;;;;KI?H<T
@;F!+;FAK;E!@E!EKFCD;=>?@EK?;TM
;;;;;I!>F<>?@*M
;;;DFH?>;>?@*TT
;F!
F!
1DF+H?EF;2@ILEAC?I>?@D<>?@ LHI?FM>EF?FH
NI;  ?>;E ;%JH
(?F
;LL?F< G>?@ M
;ILH< M
;2@ILEAC?I>?@D ?>L?A< M
;+>EL< M
F!
IE+!DI;2HKEIA>?@?
(?F
;;LL?F<=G=>?@M
;;LL?F<=*G=>?@*M
;;ILH<=M
;;IKI?H<=*M
F!
IE+!DI;2!+AJHB&>EK@
(?F
;; EI;;HE;#8;!E;I!<=G!M
;;!<=GC%M
;;I!<=GL%M
;;LAHC%U*5WL%
;;EAC?I7 7EAC?I(Q<#8U*ULAHM
F!
IE+!DI;J+?BF
NI;?>EF?FH

Rozdzia 9. Ukrywanie tajnych informacji

207

(?F
;;; EI;?;HE;EAC?I7 7;!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.

Ukrywanie tajnych informacji


w innych plikach graficznych
Pliki BMP maj bardzo prost budow, dlatego bardzo dobrze nadaj si do ukrywania
tajnych informacji. Z innymi plikami graficznymi jest ju gorzej, ale postanowiem
omwi kilka innych typw plikw graficznych, aby doceni prostot plikw BMP.

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

Vademecum hakera. Edycja plikw binarnych

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

Rozdzia 9. Ukrywanie tajnych informacji

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

Jak w plikach EXE


ukry tajne informacje?
W plikach EXE nie ma zbyt duo miejsca, aby mc ukry wiele tajnych informacji. Ale
szczeglnie w plikach EXE przeznaczonych dla systemu operacyjnego Windows znajdzie si kilkanacie lub kilkadziesit bajtw, ktre mona swobodnie zastpi naszymi
informacjami. Niestety w rnych plikach EXE bajty te znajduj si pod rnymi offsetami. Pojawia si pytanie: jak mona rozpozna, czy dany fragment pliku EXE mona
zastpi wasnymi danymi? Odpowied jest prosta: naley zlokalizowa w pliku EXE
miejsce, w ktrym znajduj si same zera (tzn. kody ASCII 0). Takie miejsce istnieje
na samym pocztku pliku, gdzie znajduje si kilka-kilkanacie zer. Te pola mona miao
zastpi wasnymi wartociami i sprawdzi, czy program si uruchomi. Jeli si nie
uruchomi, oznacza to, e te dane s jednak wane i naley przywrci plik z kopii zapasowej. Jeli nam si poszczci, mona znale cakiem spory fragment pliku EXE,
w ktrym da si zmieci nawet 1,5 KB danych! Przykadem takiego pliku EXE jest
program txt2ascii, ktry znajduje si na pycie CD-ROM w katalogu aplikacje/tools. Pod
offsetem  znajduje si 1,5 KB wolnego miejsca. Dotyczy to rwnie wszystkich plikw EXE, ktre byy kompilowane w Microsoft Visual Basic 6.0. Niestety nie wszystkie pliki wykonywalne posiadaj w swym wntrzu a tak duo miejsca, ktre mona
zagospodarowa. Ale nic nie stoi na przeszkodzie, aby do pliku EXE co dopisa. Bez
wikszego problemu na kocu pliku EXE dodaem plik tekstowy o rozmiarze 15 KB,

210

Vademecum hakera. Edycja plikw binarnych

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

plik pod inn nazw.


3. Otworzy w Notatniku plik tekstowy.
4. Zaznaczy cay tekst i skopiowa go do schowka.
5. W programie Hex Workshop naley umieci kursor na kocu pliku.
6. Z menu Edit wybra pozycj Paste Special.
7. Pojawi si okno dialogowe, w ktrym mona wybra format, w jakim ma by

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

wklei do pliku EXE.


2. Wykona kopi pliku. Najlepiej z menu File wybra opcj Save As i zapisa

plik pod inn nazw.


3. Zaznaczy cay plik (podczas tej operacji zaznaczy t cz, w ktrej

umieszczone s heksadecymalne cyfry).


4. Umieci kursor na kocu pliku EXE.
5. Z menu Edit wybra pozycj Paste Special.

Pojawi si okno dialogowe, w ktrym mona wybra format, w jakim ma by wklejony


tekst. Wybierz pozycj CF_TEXT. Upewnij si, czy ptaszek przy polu wyboru z napisem Interpret as a hexadecimal string jest zaznaczony.
By moe wklejenie pliku binarnego nie jest trudne, ale trudniej jest potem odklei
od pliku EXE plik binarny. Dlatego napisaem malutki program, ktry wykona to za nas
(patrz listing 9.4). Naley tylko poda nazw pliku, z ktrego naley odklei binarny
fragment, nazw nowego pliku oraz dugo naszego nowego pliku binarnego (czyli ile
ostatnich bajtw naley skopiowa do nowego pliku). Programik napisaem w FPC, wic
mona go swobodnie uruchomi zarwno w systemie MS-DOS (Windows), jak i w systemie Linux.
Listing 9.4. odklej.pas program zapisujcy do innego pliku ostatnie x bajtw dowolnego pliku
IEIC;2!@>B
DLL;+IH
NI
;G* ?>;E ;%JH

Rozdzia 9. Ukrywanie tajnych informacji


;?>@EL+>?@DG>9@E=?EK+>EF?FH
IE+!DI;2HKEIA>?@?<>?@G>?@*LHI?FM; EIKI!
IE+!DI;JHB
NI
;;;;>?@G>?@*LHI?F
;;;;@E!?FHI
(?F
;;+>IL+I
;;KI?H>F<T2!@>B;N;:#;<+M;C?F;LA@?K?+ATM
;;KI?H>F<TIEIC;!E;ELE%FE;=>?@D;@E=?DB;X;ELHHF?+3;%BHEK;?FFE;=>?@DTM
;;KI?H>F
;;>?@ICLHI<M
;;? ;>?@TT;H3F;%?F
;;;;I=H
;;;;;KI?H<TE!B;FAK;=>?@D;KBL+?EKE;;TM
;;;;;I!>F<>?@M
;;;;DFH?>;=>?@TT
;;F!
;;>?@*ICLHI<*M
;;? ;>?@*TT;H3F;(?F
;;;;I=H
;;;;;KI?H<TE!B;FAK;=>?@D;KJBL+?EKE;;TM
;;;;;I!>F<>?@*M
;;;;DFH?>;=>?@*TT
;;F!
;;N><=ICLHI<MG>9@E=?EK+G@E!M
;;? ;>9@E=?EK+#;H3F;(?F
;;;;;I=H
;;;;;;KI?H<TE!B;?>;ELHHF?+3;%BHEK;CC;L@E=?EK+;TM
;;;;;;I!>F<>9@E=?EK+M
;;;;;DFH?>;>9@E=?EK+#
;;F!
;;2HKEIA>?@?<>?@G>?@*M
F!
IE+!DI;2HKEIA>?@?<>?@G>?@*LHI?FM
NI;>EF?FH
;;;;%JH
(?F
;;LL?F<=G=>?@M
;;ILH<=M
;;LL?F<=*G>?@*M
;;KI?H<*M
;;?>@EL+>?@D< ?>L?A<=MM
;; EI;?;HE;?>@EL+>?@DQ>9@E=?EK+;!E;!<GM
;; EI;?;HE;>9@E=?EK+;!E;(?F
;;;;!<GM
;;;;I?H<*GM
;;F!

211

212

Vademecum hakera. Edycja plikw binarnych


;;+>EL<=M
;;+>EL<=*M
F!
(?F
;;JHB
F!:

Celowe uszkadzanie plikw


Do prostym sposobem na ukrycie informacji jest uszkodzenie pliku. By moe brzmi
to dziwnie, ale jest to bardzo proste i skuteczne rozwizanie, gdy wikszo programw nie bdzie w stanie otworzy uszkodzonych plikw. Aby otworzy uszkodzony
plik, naley go naprawi. Poniej opisz kilka typw plikw, ktre mona uszkodzi
i przedstawi metody ich uszkadzania.

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

Rozdzia 9. Ukrywanie tajnych informacji

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!

You might also like