Об ИТ из Канады

Блог Михаила Флёнова - программист, блогер, автор нескольких скандальных книг какими-то глазами...

Программирование в Delphi глазами хакера 2-е изд.

Рассмотрены нестандартные приемы программирования, а также примеры использования недокументированных функций и возможностей языка Delphi в ОС Windows при разработке шуточных программ и серьезных сетевых приложений для диагностики сетей, управления различными сетевыми устройствами и просто при повседневном использовании интернет-приложений. Компакт-диск содержит исходные коды примеров и откомпилированные программы, а также популярные приложения компании CyD Software Labs.


Оглавление Введение 1
Замечания ко второму изданию 1
Благодарности 1
О книге 2
Кто такой хакер и как им стать? 6
Обратная связь 14

Глава 1. Минимизация, скорость и безопасность

15
1.1. Методы минимизации 15
1.2. Сжатие исполняемых файлов 17
1.3. Без окон, без дверей... 21
1.4. Шаблон минимального приложения 27
1.5. Создание элементов управления с помощью Windows API 34
1.6. Прячем программы 36
1.7. Использование библиотек KOL и MCK 37
1.8. Динамические библиотеки 40
1.9. Оптимизация программ 43
Закон № 1 44
Закон № 2 45
Закон № 3 47
Закон № 4 49
Закон № 5 50
Закон № 6 51
Закон № 7 52
Закон № 8 53
Итог 53
1.10. Приемы оптимизации 54
1.10.1. Быстрый старт 54
1.10.2. Динамические библиотеки 56
1.10.3. Цепочки 59
1.11. Ассемблер и Delphi 62
1.11.1. Использование встроенного ассемблера 63
1.11.2. Внешний ассемблер 66
1.11.3. Встроенный оптимизатор 70
1.12. Безопасный код 71

Глава 2. Простые шутки

75
2.1. Летающая кнопка Пуск 76
2.2. Полный контроль над кнопкой Пуск 81
2.3. Панель задач 87
2.4. Настольные розыгрыши 90
2.5. Контролируем системную палитру 92
2.6. Изменение разрешения экрана 95
2.7. Маленькие шутки 101
2.7.1. Как программно "потушить" монитор? 101
2.7.2. Запуск системных cpl-файлов 102
2.7.3. Программное управление устройством для чтения компакт-дисков 102
2.7.4. Отключение сочетания клавиш ++ 103
2.7.5. Отключение сочетания клавиш + 104
2.7.6. Удаление часов с панели задач 104
2.7.7. Исчезновение чужого окна 105
2.7.8. "Клеим" обои 105
2.7.9. Запрет кнопки Закрыть в заголовке окна 107
2.7.10. Окно, которое нельзя закрыть 107
2.7.11. Спрятать окно 108
2.7.12. Закрыть чужое окно 108
2.8. Шутки с мышью 109
2.8.1. Безумная мышь 109
2.8.2. Мышеловка 110
2.8.3. Изменчивый указатель 111
2.8.4. Как щелкнуть в нужном месте? 112
2.9. Работа с чужими окнами 114
2.10. Дрожь в ногах 119
2.11. Оконные страсти 121
2.12. Буфер обмена 123
2.13. Служба сообщений 128

Глава 3. Система

133
3.1. Подсматриваем пароли, спрятанные под звездочками 133
3.2. Мониторинг исполняемых файлов 140
3.3. Переключающиеся экраны 150
3.4. Безбашенные окна 155
3.5. Права доступа к объектам 165
3.5.1. Дескриптор безопасности 165
3.5.2. Дескриптор безопасности 172
3.5.3. Редактирование прав доступа 182
3.6. Сервисы 189
3.7. Управление менеджером сервисов 193
3.8. Оснастка сервисов 201
3.9. Управление пользователями 208
3.9.1. Получение списка пользователей 209
3.9.2. Управление пользователями и группами 218
3.10. Изменение параметров окна 220
3.11. Создание ярлыков 222
3.12. Управление ярлыками 229
3.13. Прозрачность окон 232

Глава 4. Работа с сетью

237
4.1. Немного теории 237
4.1.1. Сетевые протоколы: протокол IP 240
4.1.2. Сопоставление адресов ARP и RARP 241
4.1.3. Транспортные протоколы: быстрый UDP 242
4.1.4. Транспортные протоколы: медленный, но надежный TCP 243
4.1.5. Прикладные протоколы: загадочный NetBIOS 244
4.1.6. NetBEUI 246
4.1.7. Сокеты Windows 246
4.1.8. Протокол IPX/SPX 246
4.1.9. Порты IP 247
4.2. Их разыскивают бойцы 139-го порта 248
4.3. Чат для локальной сети 252
4.3.1. UDP в Delphi 7 255
4.3.2. UDP в Delphi 2006 257
4.4. Сканирование открытых ресурсов 258
4.5. Telnet-клиент 263

Глава 5. Сеть на низком уровне

271
5.1. Инициализация WinSock 271
5.1.1. Пример инициализации 273
5.1.2. Подключение заголовочных файлов 273
5.1.3. Получение информации о сокетах 276
5.2. Обработка сетевых ошибок 277
5.3. Функции соединения с сервером 279
5.3.1. Синхронность/асинхронность работы порта 280
5.3.2. Соединение с сервером 281
5.3.3. Порты 282
5.3.4. Закрытие соединения 283
5.4. Сканер портов 283
5.5. Самый быстрый сканер портов 287
5.5.1. Работа с событиями 289
5.5.2. Время и количество 290
5.5.3. Кодинг 291
5.5.4. Структура типа TFDSet 298
5.6. Продолжаем знакомиться с WinSock 304
5.7. Определение локального/удаленного IP-адреса 307
5.8. Пишем TCP/IP-сервер и клиента 309
5.8.1. TCP-сервер 310
5.8.2. TCP-клиент 313
5.9. Передача данных 315
5.9.1. Блокирующий режим 315
5.9.2. Блокирующий TCP-сервер 316
5.9.3. Неблокирующий сокет 319
5.9.4. Обмен через сообщения 324
5.9.5. Пример работы через сообщения 328
5.10. Как написать троян 330
5.11. Работа с UDP 331
5.11.1. UDP-сервер 332
5.11.2. UDP-клиент 334
5.11.3. Замечания 335
5.12. HTTP-клиент 336

Глава 6. Железная мастерская

343
6.1. Общая информация о компьютере и ОС 343
6.1.1. Платформа компьютера 347
6.1.2. Информация о процессоре 347
6.1.3. Информация о платформе Windows 347
6.1.4. Дополнительная информация о Windows 348
6.1.5. Переменные окружения Windows 348
6.2. Информация о памяти 350
6.3. Информация о дисках 353
6.4. Частота и загрузка процессора 357
6.4.1. Частота процессора 358
6.4.2. Загрузка процессора 362
6.5. Работа с COM-портом 364
6.6. Работа с LPT-портом 369
6.7. Получение информации об устройстве вывода 374
6.8. Работа с типами файлов 378
6.8.1. Получение информации о типе файлов 378
6.8.2. Связывание своей программы с неопределенным типом файлов 383
6.9. Работа со сканером 386
6.10. IP-config собственными руками 392
6.11. Получение информации о сетевом устройстве 397

Глава 7. Полезное

405
7.1. Работа с NetBIOS 405
7.2. Работа с ARP 411
7.3. Изменение записей ARP-таблицы 419
7.3.1. Добавление ARP-записей 419
7.3.2. Удаление ARP-записей 425
7.4. Работа с сетевыми ресурсами 430
7.5. Быстрая проверка состояний портов: вариант 1 441
7.6. Быстрая проверка состояний портов: вариант 2 451
7.7. Работа с ICMP на примере ping 461
7.8. Trace Route 468
Приложение. Описание компакт-диска 471
Литература 472
Предметный указатель 473
VI Оглавление V Оглавление

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Внимание!

А ты уже читал мою последнюю книгу о больших сайтах и приложениях? Узнай, что это такое здесь

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне