Читаем Я – хакер! Хроника потерянного поколения полностью

• Модульную систему. То есть должна быть центральная транспортная часть, обеспечивающая обмен сообщениями между модулями. На серверной части загружается модуль управления (в виде DLL), на боте с сервера подгружается рабочий модуль. Система должна поддерживать обновление модулей прямо в реальном времени. Модули, загружаемые на бота, не должны сохраняться где-либо на диске.

• Веб-интерфейс управления ботнетом.





Архитектуру ботнета в виде модульной структуры я взял из «Адаманта», а они, в свою очередь, с Half-Life 2. Мне очень понравилась идея экспортировать из модуля в виде библиотеки всего две функции: Create Module и Delete Module. Первая возвращает интерфейс IModule, который и реализует функциональность. В сам же модуль передаются интерфейсы IKernel — функций ядра, ISocks — сетевого интерфейса и т. д. Все красиво и прозрачно.

При подключении к управляющему серверу бот сообщает, какие версии каких модулей у него загружены. И в случае отсутствия или устаревания какого-либо модуля контрольный сервер пакует файл SYS (это, по сути, библиотека режима ядра ОС) и передает на бота. Ядро бота распаковывает модуль и выполняет его загрузку в память, инициализацию и запуск. То есть на диске сохраняется только ядро, которое не умеет спамить. А модуль может расширить его функциональность до чего угодно.

Это была очень интересная и творческая работа, я полностью погрузился в процесс. А моему брату это было очень удобно, он делал только веб-интерфейс на PHP и модифицировал систему макросов от NorthWind для работы в ботнете, при этом у него оставалось еще уйма свободного времени. Он взял на себя роль СТАРШЕГО, восполнив на тот момент мою потребность в родителе и наставнике. Потребность в родителе, который мог сказать те самые слова «отличная работа, молодец», в родителе, который мог бы посоветовать, как поступить в сложной ситуации.

Позже ботнет получит название Festi. ФСБшники при аресте моего брата ошибочно решат, что это он написал ботнет, а его ник на Spamdot был Engel. С их же подачки это подхватит и Брайан Кребс.

Бот

Программирование драйверов сильно отличается от разработки прикладных программ. Если вы знакомы с кольцами привилегий процессора, то знаете, что ядро Windows и драйверы работают на нулевом. А процессоры архитектуры x86 реализуют четыре кольца привилегий для процессов, нулевое использует ядро операционной системы — у него есть полный доступ ко всему оборудованию. Прикладные процессы же работают в четвертом кольце, любое прямое обращение к оборудованию или вызов каких-либо привилегированных инструкций вызывает исключение, которое обрабатывается ядром ОС. Более того, любое падение прикладного процесса (например, обращение по несуществующему адресу, деление на ноль) никак не влияет на работу операционной системы и остальных прикладных процессов. В то время как ошибка в коде драйвера часто приводит к BSOD (Blue Screen Of Death — синий экран смерти). Требования к разработке драйверов и квалификации программиста возрастают на порядки. Если бы, например, руткит писал Botmaster (создатель XRumer, который постоянно падает), — капец машинам пользователей.





Далее хороший бот должен иметь минимальный размер. Большую часть кода в таких небольших программках несет The C runtime Library (CRT), которая линкуется к любому стандартному проекту по умолчанию. И прибавляет к небольшому файлу весом 30 Кб еще пару мегабайт. В CRT идут все стандартные функции С-шных библиотек, обкрутка входной точки в исполняемый файл и т. п. Единственное решение — отключать ее.

Отключив CRT, я сразу лишился стандартных функций malloc/free — выделение/освобождение памяти, без которых программировать крайне сложно. Также не были доступны функции работы со строками, которые требовались модулю спама.

В ядре операционной системы память делится на два типа: выгружаемые страницы и невыгружаемые. Выгружаемые страницы, как следует из их названия, могут выгрузиться ядром ОС на диск, в файл подкачки. Невыгружаемые всегда остаются в памяти. Если процессор обращается по адресу страницы, отсутствующему в данный момент в памяти, генерируется прерывание (Interrupt Request — IRQ[30]). Прерывание перехватывает ядро ОС и подгружает нужную страничку в память. Все внешние устройства уведомляют ОС через прерывания. Хитрость заключается в том, что у каждого прерывания есть приоритет, и прерывание с более высоким приоритетом вытесняет прерывание с более низким. Теперь представьте, что случится, если сработает прерывание с приоритетом выше прерывания на подгрузку странички памяти, а обработчик этого прерывания находится на выгруженной страничке в файле подкачки. Всё, операционной системе — хана. Такие детали постоянно нужно держать в голове.

Перейти на страницу:

Похожие книги

Сатиры в прозе
Сатиры в прозе

Самое полное и прекрасно изданное собрание сочинений Михаила Ефграфовича Салтыкова — Щедрина, гениального художника и мыслителя, блестящего публициста и литературного критика, талантливого журналиста, одного из самых ярких деятелей русского освободительного движения.Его дар — явление редчайшее. трудно представить себе классическую русскую литературу без Салтыкова — Щедрина.Настоящее Собрание сочинений и писем Салтыкова — Щедрина, осуществляется с учетом новейших достижений щедриноведения.Собрание является наиболее полным из всех существующих и включает в себя все известные в настоящее время произведения писателя, как законченные, так и незавершенные.В третий том вошли циклы рассказов: "Невинные рассказы", "Сатиры в прозе", неоконченное и из других редакций.

Михаил Евграфович Салтыков-Щедрин

Документальная литература / Проза / Русская классическая проза / Прочая документальная литература / Документальное
Есть такой фронт
Есть такой фронт

Более полувека самоотверженно, с достоинством и честью выполняют свой ответственный и почетный долг перед советским народом верные стражи государственной безопасности — доблестные чекисты.В жестокой борьбе с открытыми и тайными врагами нашего государства — шпионами, диверсантами и другими агентами империалистических разведок — чекисты всегда проявляли беспредельную преданность Коммунистической партии, Советской Родине, отличались беспримерной отвагой и мужеством. За это они снискали почет и уважение советского народа.Одну из славных страниц в историю ВЧК-КГБ вписали львовские чекисты. О многих из них, славных сынах Отчизны, интересно и увлекательно рассказывают в этой книге писатели и журналисты.

Владимир Дмитриевич Ольшанский , Аркадий Ефимович Пастушенко , Николай Александрович Далекий , Петр Пантелеймонович Панченко , Василий Грабовский , Степан Мазур

Документальная литература / Приключения / Прочие приключения / Прочая документальная литература / Документальное
Грязные деньги
Грязные деньги

Увлекательнее, чем расследования Насти Каменской! В жизни Веры Лученко началась черная полоса. Она рассталась с мужем, а ее поклонник погиб ужасной смертью. Подозрения падают на мужа, ревновавшего ее. Неужели Андрей мог убить соперника? Вере приходится взяться за новое дело. Крупный бизнесмен нанял ее выяснить, кто хочет сорвать строительство его торгово-развлекательного центра — там уже погибло четверо рабочих. Вера не подозревает, в какую грязную историю влипла. За стройкой в центре города стоят очень большие деньги. И раз она перешла дорогу людям, которые ворочают миллионами, ее жизнь не стоит ни гроша…

Петр Владимирский , Гарри Картрайт , Анна Овсеевна Владимирская , Анна Владимирская , Илья Конончук

Детективы / Триллер / Документальная литература / Триллеры / Историческая литература / Документальное