C++ Elementarz hakera.pdf

(1017 KB) Pobierz
Hackish C++ Pranks & Tricks
IDZ DO
PRZYK£ADOW Y ROZDZIA£
C++. Elementarz
SPIS TRECI
hakera
KATALOG KSI¥¯EK
KATALOG ONLINE
Autor: Michael Flenov
T³umaczenie: Przemys³aw Szeremiota
ISBN: 83-7361-801-5
Format: B5, stron: 296
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Haker, wbrew utartym pogl¹dom, nie jest osob¹, której g³ównym celem jest niszczenie
— haker to kto, kto podchodzi do standardowych problemów programistycznych
w niestandardowy sposób, tworz¹c w³asne rozwi¹zania, czêsto zaskakuj¹ce innych.
Opracowywanie takich nietypowych rozwi¹zañ wymaga wszechstronnej wiedzy
z zakresu programowania, znajomoci systemu operacyjnego i umiejêtnoci
wynajdowania i stosowania nieudokumentowanych funkcji jêzyków programowania
i platform systemowych.
„C++. Elementarz hakera” to ksi¹¿ka przeznaczona dla wszystkich tych, którym
„zwyk³e” programowanie ju¿ nie wystarcza i którzy chc¹ stworzyæ co wyj¹tkowego.
Przedstawia techniki, dziêki którym programy bêd¹ dzia³aæ szybciej, a efekty ich
dzia³ania bêd¹ zachwycaæ i zaskakiwaæ. Czytaj¹c j¹ nauczysz siê pisaæ aplikacje,
które rozbawi¹ lub zirytuj¹ innych u¿ytkowników, jak tworzyæ narzêdzia do
skanowania portów i jak wykorzystywaæ wiedzê o systemach operacyjnych
i jêzykach programowania do optymalizacji i przyspieszania dzia³ania programów.
• Optymalizacja kodu ród³owego i usuwanie w¹skich garde³
• Zasady prawid³owego projektowania aplikacji
• Tworzenie programów-¿artów
• Programowanie w systemie Windows
• Sieci i protoko³y sieciowe
• Implementacja obs³ugi sieci we w³asnych aplikacjach
• Sztuczki ze sprzêtem
• Techniki hakerskie
Wiedz¹c, jak dzia³aj¹ hakerzy, bêdziesz w stanie zabezpieczyæ swoje aplikacje przed
atakami tych, którzy swoj¹ wiedzê wykorzystuj¹ w niew³aciwy sposób.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
2972849.001.png 2972849.002.png 2972849.003.png 2972849.004.png
Spis treci
Wstp ............................................................................................... 7
Wprowadzenie ................................................................................... 9
O ksice...........................................................................................................................9
Kim jest haker? Jak zosta hakerem?..............................................................................11
Rozdział 1. Jak uczyni program zwartym, a najlepiej niewidzialnym? .................. 19
1.1. Kompresowanie plików wykonywalnych.................................................................19
1.2. Ani okna, ani drzwi…..............................................................................................24
1.3. Wn'trze programu....................................................................................................30
1.3.1. Zasoby projektu.............................................................................................31
1.3.2. Kod -ródłowy programu................................................................................33
1.4. Optymalizacja programu..........................................................................................43
Zasada 1. Optymalizowa mona wszystko.............................................................44
Zasada 2. Szukaj wskich gardeł i słabych ogniw....................................................44
Zasada 3. W pierwszej kolejno0ci optymalizuj operacje cz'sto powtarzane............45
Zasada 4. Pomy0l dwa razy, zanim zoptymalizujesz operacje jednorazowe............47
Zasada 5. Poznaj wn'trze komputera i sposób jego działania..................................48
Zasada 6. Przygotuj tabele gotowych wyników oblicze6 i korzystaj z nich
w czasie działania programu..................................................................................49
Zasada 7. Nie ma niepotrzebnych testów.................................................................50
Zasada 8. Nie bd- nadgorliwy................................................................................50
Podsumowanie.........................................................................................................51
1.5. Prawidłowe projektowanie okien.............................................................................51
1.5.1. Interfejs okna głównego.................................................................................54
1.5.2. Elementy sterujce.........................................................................................55
1.5.3. Okna dialogowe.............................................................................................55
Rozdział 2. Tworzenie prostych programów-'artów.............................................. 61
2.1. Latajcy przycisk Start.............................................................................................62
2.2. Zacznij prac' od przycisku Start...............................................................................71
2.3. Zamieszanie z przyciskiem Start..............................................................................73
2.4. Wi'cej dowcipów z paskiem zada6..........................................................................76
2.5. Inne arty..................................................................................................................83
Jak „zgasi” monitor?..............................................................................................83
Jak uruchamia systemowe pliki CPL?....................................................................83
Jak wysun tack' nap'du CD-ROM?.....................................................................84
Jak usun zegar z paska zada6?..............................................................................86
4
C++. Elementarz hakera
Jak ukry cudze okno?.............................................................................................86
Jak ustawi własn tapet' pulpitu? ..........................................................................87
2.6. Berek z mysz..........................................................................................................88
Szalona mysz...........................................................................................................88
Latajce obiekty.......................................................................................................89
Mysz w klatce..........................................................................................................90
Jak zmieni kształt wska-nika myszy?....................................................................91
2.7. Znajd- i zniszcz........................................................................................................92
2.8. Pulpit........................................................................................................................93
2.9. Bomba sieciowa .......................................................................................................94
Rozdział 3. Programowanie w systemie Windows ............................................... 97
3.1. Manipulowanie cudzymi oknami..............................................................................97
3.2. Gorczkowa drczka.............................................................................................102
3.3. Przełczanie ekranów.............................................................................................103
3.4. Niestandardowe okna.............................................................................................107
3.5. Finezyjne kształty okien.........................................................................................113
3.6. Sposoby chwytania nietypowego okna...................................................................119
3.7. Ujawnianie haseł....................................................................................................121
3.7.1. Biblioteka deszyfrowania haseł....................................................................122
3.7.2. Deszyfrowanie hasła....................................................................................126
3.7.3. Obrómy to w art........................................................................................128
3.8. Monitorowanie plików wykonywalnych................................................................130
3.9. Zarzdzanie ikonami pulpitu..................................................................................132
3.9.1. Animowanie tekstu......................................................................................133
3.9.2. Od0wieanie pulpitu.....................................................................................134
3.10. Garty z wykorzystaniem schowka..........................................................................134
Rozdział 4. Sieci komputerowe ........................................................................ 139
4.1. Teoria sieci i protokołów sieciowych.....................................................................139
4.1.1. Protokoły sieciowe.......................................................................................141
Protokół IP...................................................................................................142
Protokół ARP a protokół RARP..................................................................143
4.1.2. Protokoły transportowe................................................................................143
Protokół UDP — szybki ..............................................................................143
Protokół TCP — wolniejszy, ale solidniejszy..............................................144
TCP — zagroenia i słabo0ci.......................................................................145
4.1.3. Protokoły warstwy aplikacji — tajemniczy NetBIOS..................................145
4.1.4. NetBEUI......................................................................................................146
4.1.5. Gniazda w Windows....................................................................................147
4.1.6. Protokoły IPX/SPX......................................................................................147
4.1.7. Porty.............................................................................................................148
4.2. Korzystanie z zasobów otoczenia sieciowego........................................................148
4.3. Struktura otoczenia sieciowego..............................................................................151
4.4. Obsługa sieci za po0rednictwem obiektów MFC....................................................158
4.5. Transmisja danych w sieci za po0rednictwem obiektu CSocket.............................165
4.6. Bezpo0rednie odwołania do biblioteki gniazd........................................................174
4.6.1. Obsługa bł'dów ...........................................................................................175
4.6.2. Wczytywanie biblioteki gniazd....................................................................175
4.6.3. Tworzenie gniazda.......................................................................................179
4.6.4. Funkcje strony serwera ................................................................................180
4.6.5. Funkcje strony klienta..................................................................................184
4.6.6. Wymiana danych..........................................................................................186
4.6.7. Zamykanie połczenia..................................................................................191
4.6.8. Zasady stosowania protokołów bezpołczeniowych....................................192
Spis treci
5
4.7. Korzystanie z sieci za po0rednictwem protokołu TCP...........................................194
4.7.1. Przykładowy serwer TCP.............................................................................194
4.7.2. Przykładowy klient TCP..............................................................................199
4.7.3. Analiza przykładów.....................................................................................202
4.8. Przykłady wykorzystania protokołu UDP..............................................................204
4.8.1. Przykładowy serwer UDP............................................................................204
4.8.2. Przykładowy klient UDP .............................................................................205
4.9. Przetwarzanie odebranych danych..........................................................................207
4.10. Wysyłanie i odbieranie danych...............................................................................209
4.10.1. Funkcja select..............................................................................................210
4.10.2. Prosty przykład stosowania funkcji select....................................................211
4.10.3. Korzystanie z gniazd za po0rednictwem komunikatów systemowych.........213
4.10.4. Asynchroniczna wymiana danych z wykorzystaniem obiektów zdarze6.....220
Rozdział 5. Obsługa sprztu ............................................................................. 223
5.1. Parametry podsystemu sieciowego.........................................................................223
5.2. Zmiana adresu IP komputera..................................................................................229
5.3. Obsługa portu szeregowego....................................................................................234
5.4. Pliki zawieszajce system.......................................................................................239
Rozdział 6. Sztuczki, kruczki i ciekawostki ...................................................... 241
6.1. Algorytm odbioru-wysyłania danych.....................................................................242
6.2. Szybki skaner portów.............................................................................................245
6.3. Stan portów komputera lokalnego..........................................................................252
6.4. Serwer DHCP.........................................................................................................257
6.5. Protokół ICMP.......................................................................................................260
6.6. Mledzenie trasy w'drówki pakietu..........................................................................267
6.7. Protokół ARP.........................................................................................................273
Podsumowanie .............................................................................. 283
Skorowidz...................................................................................... 285
Rozdział 3.
Programowanie
w systemie Windows
W niniejszym rozdziale przyjrzymy si rónym narzdziom systemowym. Zobaczymy
przykłady programów, które pomagaj podglda przebieg pracy komputera. Nie słu
one tylko do zabawy. Bdziemy w istocie pracowa z systemem operacyjnym, cho w wielu
przykładach bdziemy si ucieka do artów. Pisałem ju, e kady haker to profe-
sjonalista — powinien wic zna tajniki systemu operacyjnego, z którego korzysta.
Zakładam tutaj, e Czytelnik korzysta z systemu Windows i pisze bd) ma zamiar pisa
programy przeznaczone do uruchamiania w tym wła*nie systemie. Rozdział ten ma
Czytelnikowi pomóc lepiej zrozumie system. Jak zwykle, zamiast przecia pami
teori, bdziemy si uczy przez praktyk. Czytelnicy moich poprzednich ksiek z pew-
no*ci pamitaj to podej*cie. Zawsze twierdziłem, e jedynie praktyka daje prawdziw
wiedz. Dlatego wszystkie moje ksiki s wprost przeładowane przykładami. Nie in-
aczej bdzie tym razem.
Zabierzemy si za chwil za analiz kilku ciekawych przykładów. Bd one ilustrowa
techniki pracy w systemie operacyjnym Windows i uczy praktycznego ich zastoso-
wania. Mam nadziej, e cho niektóre z nich przydadz si Czytelnikowi w pracy.
Bd starał si w tym rozdziale stopniowa poziom zaawansowania przykładów, tak
aby kolejne prezentacje wnosiły co* nowego i Czytelnik nie stracił zainteresowania
tematem.
3.1. Manipulowanie cudzymi oknami
W mojej skrzynce poczty elektronicznej czsto lduj pytania: „Jak zamkn czyje*
okno albo co* w nim zmieni?”. Zasadniczo zadanie to mona łatwo zrealizowa
funkcj , z któr zdyli*my si ju zapozna. Je*li jednak zachodzi potrzeba
 
Zgłoś jeśli naruszono regulamin