C_Elementarz_hakera_cpelha.pdf

(1002 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
C++. Elementarz
hakera
Autor: Michael Flenov
T³umaczenie: Przemys³aw Szeremiota
ISBN: 83-7361-801-5
Tytu³ orygina³u:
Hackish C++ Pranks & Tricks
Format: B5, stron: 296
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, znajomo ci systemu operacyjnego i umiejêtno ci
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³a ciwy sposób.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Spis treści
Wstęp ............................................................................................... 7
Wprowadzenie ................................................................................... 9
O ksią ce ........................................................................................................................... 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ć mo na wszystko............................................................. 44
Zasada 2. Szukaj wąskich gardeł i słabych ogniw.................................................... 44
Zasada 3. W pierwszej kolejności optymalizuj operacje często powtarzane............ 45
Zasada 4. Pomyśl 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 obliczeń i korzystaj z nich
w czasie działania programu.................................................................................. 49
Zasada 7. Nie ma niepotrzebnych testów................................................................. 50
Zasada 8. Nie bądź nadgorliwy ................................................................................ 50
Podsumowanie ......................................................................................................... 51
1.5. Prawidłowe projektowanie okien ............................................................................. 51
1.5.1. Interfejs okna głównego................................................................................. 54
1.5.2. Elementy sterujące ......................................................................................... 55
1.5.3. Okna dialogowe ............................................................................................. 55
Rozdział 2. Tworzenie prostych programów-żartów.............................................. 61
2.1. Latający 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 zadań .......................................................................... 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 zadań?.............................................................................. 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
Latające 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. Gorączkowa dr ączka............................................................................................. 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. Zarządzanie ikonami pulpitu .................................................................................. 132
3.9.1. Animowanie tekstu ...................................................................................... 133
3.9.2. Odświe anie pulpitu..................................................................................... 134
3.10. arty 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 — zagro enia i słabości ....................................................................... 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 pośrednictwem obiektów MFC.................................................... 158
4.5. Transmisja danych w sieci za pośrednictwem obiektu CSocket............................. 165
4.6. Bezpośrednie 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 treści
5
4.7. Korzystanie z sieci za pośrednictwem 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 pośrednictwem komunikatów systemowych ......... 213
4.10.4. Asynchroniczna wymiana danych z wykorzystaniem obiektów zdarzeń ..... 220
Rozdział 5. Obsługa sprzętu ............................................................................. 223
5.1. Parametry podsystemu sieciowego......................................................................... 223
5.2. Zmiana adresu IP komputera.................................................................................. 229
5.3. Obsługa portu szeregowego.................................................................................... 234
5.4. Pliki zawieszające 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. Śledzenie 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 narzędziom systemowym. Zobaczymy
przykłady programów, które pomagają podglądać przebieg pracy komputera. Nie słu ą
one tylko do zabawy. Będziemy w istocie pracować z systemem operacyjnym, choć w wielu
przykładach będziemy się uciekać do artów. Pisałem ju , e ka dy haker to profe-
sjonalista — powinien więc znać tajniki systemu operacyjnego, z którego korzysta.
Zakładam tutaj, e Czytelnik korzysta z systemu Windows i pisze bądź 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 przecią ać pamięć
teorią, będziemy się uczyć przez praktykę. Czytelnicy moich poprzednich ksią ek z pew-
nością pamiętają to podejście. Zawsze twierdziłem, e jedynie praktyka daje prawdziwą
wiedzę. Dlatego wszystkie moje ksią ki są wprost przeładowane przykładami. Nie in-
aczej będzie tym razem.
Zabierzemy się za chwilę za analizę kilku ciekawych przykładów. Będą 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.
Będę 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 często lądują pytania: „Jak zamknąć czyjeś
okno albo coś w nim zmienić?”. Zasadniczo zadanie to mo na łatwo zrealizować
funkcją
(KPF9KPFQY
, z którą zdą yliśmy się ju zapoznać. Jeśli jednak zachodzi potrzeba
Zgłoś jeśli naruszono regulamin