В книге Программирование на C++ глазами хакеров +CD. 2-е изд. Фленов рассмотрены нестандартные приемы программирования, и примеры эксплуатации недокументированных функций и возможностей языка C++ при создании шуточных программ и серьезных сетевых приложений для диагностики сетей, управления разными сетевыми устройствами и просто при повседневном использовании интернет-приложений. Во II-м издании содержатся новые и обработаны старые примеры, а в качестве среды разработки применяется Visual Studio 2008, впрочем больше всего описываемых примеров работоспособны в более старых версиях и в CODEGEAR C++ Builder.
Оглавление книги Программирование на C++ глазами хакеров +CD. 2-е изд. Фленов
Введение
О книге
Кто такой хакер? Как им стать?
Благодарности Глава 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. Изменение дескриптора безопасности
Заключение
Приложение. Описание компакт-диска
Список литературы и ресурсы Интернета
Предметный указатель
Книга C/C++ в задачах и примерах. 2-е изд. Культин представляет собою сборник примеров и задач по программированию на языке C/C++, как типовых - ввод-вывод, управление вычислительным процессом, работа с массивами, поиск и сортировка, так и тех, которые как правило не входят в традиционные курсы - работа со строками и файлами, программирование графики, рекурсия.