Рассмотрены нестандартные приемы программирования, а также примеры использования недокументированных функций и возможностей языка C++ при разработке шуточных программ и серьезных сетевых приложений для диагностики сетей, управления различными сетевыми устройствами и просто при повседневном использовании интернет-приложений. Во втором издании содержатся новые и переработаны старые примеры, а в качестве среды разработки используется Visual Studio 2008, хотя большинство описываемых примеров работоспособны в более старых версиях и в CodeGear C++ Builder.
Оглавление
Введение
О книге
Кто такой хакер? Как им стать?
Благодарности Глава 1. Оптимизация
1.1. Сжатие исполняемых файлов
1.2. Без окон, без дверей...
1.3. Оптимизация программ
Закон № 1
Закон № 2
Закон № 3
Закон № 4
Закон № 5
Закон № 6
Закон № 7
Закон № 8
Закон № 9
Итог
1.4. Безопасность кода
1.4.1. Планирование безопасности
1.4.2. Уровень защиты
1.4.3. Исправление ошибок
1.4.4. Шифрование
1.4.5. Тестирование
1.4.6. Возможности системы
1.4.7. Установка программы
1.5. Распространенные уязвимости
1.5.1. Контроль данных
1.5.2. Переполнения
1.5.3. Ошибки логики Глава 2. Простые шутки
2.1. Летающий Пуск
2.2. Начните работу с кнопки Пуск
2.3. Светомузыка над кнопкой Пуск
2.4. Продолжаем шутить над Панелью задач
2.5. Маленькие шутки
2.5.1. Как программно потушить монитор
2.5.2. Запуск системных CPL-файлов
2.5.3. Программное управление CD-ROM
2.5.4. Удаление часов из Панели задач
2.5.5. Исчезновение чужой программы
2.5.6. Установка на Рабочий стол собственных обоев
2.6. Шутки с мышкой
2.6.1. Безумная мышка
2.6.2. Летающие объекты
2.6.3. Мышка в клетке
2.6.4. Изменчивый указатель
2.6.5. Скоростной режим
2.7. Найти и уничтожить
2.8. Блокировка Рабочего стола
2.9. Сетевая бомба Глава 3. Система
3.1. Работа с чужыми окнами
3.2. Дрожь в ногах
3.3. Переключение экранов
3.4. Нестандартные окна
3.5. Безбашенные окна
3.6. Перемещение окна за любую область
3.7. Подсматриваем пароли
3.7.1. Динамическая библиотека для расшифровки паролей
3.7.2. Программа расшифровки пароля
3.7.3. От пользы к шутке
3.8. Мониторинг исполняемых файлов
3.9. Управление ярлыками на Рабочем столе
3.9.1. Анимация текста
3.9.2. Обновление иконки
3.10. Использование буфера обмена Глава 4. Работа с сетью
4.1. Теория сетей и сетевых протоколов
4.1.1. Сетевые протоколы
4.1.2. Транспортные протоколы
4.1.3. Прикладные протоколы — загадочный NetBIOS
4.1.4. NetBEUI
4.1.5. Сокеты Windows
4.1.6. Протоколы IPX/SPX
4.1.7. Сетевые порты
4.2. Работа с ресурсами сетевого окружения
4.3. Структура сети
4.4. Работа с сетью с помощью объектов Visual C++
4.5. Передача данных по сети с помощью CSocket
4.6. Работа напрямую с WinSock
4.6.1. Обработка ошибок
4.6.2. Запуск библиотеки
4.6.3. Создание сокета
4.6.4. Серверные функции
4.6.5. Клиентские функции
4.6.6. Обмен данными
4.6.7. Завершение соединения
4.6.8. Принцип работы протоколов без установки соединения
4.7. Примеры работы с сетью по протоколу TCP
4.7.1. Пример работы TCP-сервера
4.7.2. Пример работы TCP-клиента
4.7.3. Анализ примера
4.8. Примеры работы по протоколу UDP
4.8.1. Пример работы UDP-сервера
4.8.2. Пример работы UDP-клиента
4.9. Обработка принимаемых данных
4.10. Прием и передача данных
4.10.1. Функция select
4.10.2. Простой пример использования функции select
4.10.3. Использование сокетов через события Windows
4.10.4. Асинхронная работа через объект события Глава 5. Работа с железом
5.1. Параметры сети
5.2. Изменение IP-адреса
5.3. Работа с COM-портом
5.4. Подвисшие файлы Глава 6. Полезные примеры
6.1. Алгоритм приема/передачи данных
6.2. Самый быстрый сканер портов
6.3. Состояние локального компьютера
6.4. DHCP-сервер
6.5. Протокол ICMP
6.6. Определение пути пакета
6.7. ARP-протокол Глава 7. Система безопасности
7.1. Пользователи ОС Windows
7.1.1. Получение списка пользователей/групп
7.1.2. Управление пользователями
7.2. Права доступа к объектам
7.2.1. Дескриптор безопасности
7.2.2. Дескриптор безопасности
7.2.3. Изменение дескриптора безопасности
Заключение
Приложение. Описание компакт-диска
Список литературы и ресурсы Интернета
Предметный указатель
ПЕРВАЯ книга на русском языке, которая описывает среду .NET Framework 3.0. Известные специалисты в области разработки приложений с использованием .NET Framework старались специально отмечать те элементы, которые впервые появились в .NET Framework 3.0. Также книга посвящена среде .NET Framework 2.0 и языку программирования C#.
Книга является учебным пособием по языкам программирования С И С++. Она может быть использована для изучения языка С, как самостоятельного языка. Язык С++ рассматривается как надстройка к языку С. Изложение проиллюстрировано большим количеством примеров.Книга написана на основе учебного курса `С++ для начинающих`, который в течении нескольких лет читался в учебном центре `Диалог - МИФИ` и ориентирована на начинающих программистов, а также тех, кто хочет самостоятельно изучить языки программирования С и С++.