Разработка драйверов для Windows

Основной чат
Помощь Пользователи
  • Никто не разговаривает в данный момент.
  • DHCoba @ DHCoba:
    Шяс напишу тебе в личку
  • MKII @ MKII:
    DHCoba сказал(а):
    Шяс напишу тебе в личку
    окей
  • X-Shar @ X-Shar:
    gesttototot сказал(а):
    Уже есть готовая идея?
    Идея есть, но готовая процентов на 70%, идея посвящена обходу АВ, но незнаю на сколько подойдет для конкурса, по следующим причинам:
    1. В сети в разных вариантах уже есть наработки, вот я хочу эти наработки объединить в один проект, в итоге будет около 80% стороннего кода и где-то 20% моего.
    2.Проект будет написан на Си, вот незнаю сколько людей на нём кодит сейчас в части комерса малвари.
    3.Нужно ещё статью подготовить, проект больше будет в исследовательских целях.
    Но всё-равно как сделаю попробую выложить, не понравится и ладно, в целом ничего не теряю.)Потом на гитхаб выложу.)))
  • G (Гость) guesttototot:
    X-Shar сказал(а):
    Идея есть, но готовая процентов на 70%, идея посвящена обходу АВ, но незнаю на сколько подойдет для конкурса, по следующим причинам: 1. В сети в разных вариантах уже есть наработки, вот я хочу эти наработки объединить в один проект, в итоге будет около 80% стороннего кода и где-то 20% моего. 2.Проект будет написан на Си, вот незнаю сколько людей на нём кодит сейчас в части комерса малвари. 3.Нужно ещё статью подготовить, проект больше будет в исследовательских целях. Но всё-равно как сделаю попробую выложить, не понравится и ладно, в целом ничего не теряю.)Потом на гитхаб выложу.)))

    1. На мой взгляд, 20% - тоже работа, все таки ты приложил руку, не знаю с чистого нуля ли там обязательно надо писать, но можно спросить у Тохи в ветке, ответит.
    2. Это абсолютно не важно, прицел больше на пользу
    3. Конкретно для того конкурса, достаточно развернутого ридми
    Ну а с такой темой, уже и на призовое можно рассчитывать)) мой голос будет за тебя))
  • MKII @ MKII:
    И мой голос будет за тебя, главное скажи где оставить :sueta:
  • D @ DXZALEET:
    Ну штож ребятки, решил я тут попробовать накатать что то напоминающее чит для Раста и использованием DMA и Python. Интересно есть ли тут единомышленники? Может кто то хочет попробовать себя в подобном? Знания питона есть, работал с небольшим количеством библиотек. Писал спамеры, парсеры для вк. 19 лет. Желательно что бы Вы уже имели опыт работы с DMA или хотя бы с Rust-ом. Буду рад любым предложениям в лс форума.
  • MKII @ MKII:
    Есть у кого идеи, что можно сделать если хостинг не принимает абузы? хостинг русский с лицензией, абуз писал на ботнет, просто игнор с их стороны
  • Б (Гость) бюджетный:
    Привет! Аккаунт в временном блоке из-за ошибок ввода пароля. Скоро начну писать статью i'm crazy
    Цитата Ссылка
  • Бюджетный Бюджет @ Бюджетный Бюджет:
    И вот я тут
    Цитата Ссылка
  • MKII @ MKII:
    Бюджетный Бюджет сказал(а):
    так ты мог мне или X-Shar’у написать на счет пароля
    Цитата Ссылка
  • papaja @ papaja:
    Что изучить, чтобы курс по малвару более менее стал понятным? Есть какая никакая база в программировании, просто нравится программная разработка и работа с ОС. Просто процентов 70 из курса вообще не понимаю((
    Цитата Ссылка
  • X-Shar @ X-Shar:
    @papaja, там нужнно си изучить. Возможно можно почитать статьи по устройству винды.
    Цитата Ссылка
  • X-Shar @ X-Shar:
    Вообще курс для новичков, но допускаю что я написал/перевел неронятно.
    Цитата Ссылка
  • X-Shar @ X-Shar:
    Темы базовые там, вроде должны понятны быть, если есть базовые навыки кодинга в си.
    Цитата Ссылка
  • O @ offsec:
    Парни, знает кто как можно маяк закриптовать чтобы ав не палили? Я на вм отрубаю антивир, через рдп подключение, а вот если не будет у меня возможности через рдп? Да и палевно это, в реальном пентесте сразу поотрубают всё. Хотя мне до реального пентеста...)
    Цитата Ссылка
  • X-Shar @ X-Shar:
    @offsec, кстати по рдп не все АВ можно отрубить, например KIS блокирует это, также есть защищенные паролем АВ.
    Цитата Ссылка
  • O @ offsec:
    Еще лучше)
    Цитата Ссылка
  • Spectrum735 @ Spectrum735:
    X-Shar сказал(а):
    @offsec, кстати по рдп не все АВ можно отрубить, например KIS блокирует это, также есть защищенные паролем АВ.
    Но позволяет aspia
    Цитата Ссылка
  • O @ offsec:
    Я вот щас экспериментирую, пытаюсь отказаться от Stage payload'ов, но не хочет оно работать) SMB - Не получилось, TCP - не получилось, что интересно HTTP Работает нормально. Ничего не понимаю - как это. Посмотрел - порт не занят. Антивирус я думаю понятно что отключен. Может сталкивался кто?
    Цитата Ссылка
  • X-Shar @ X-Shar:
    @offsec, а почему не получилось, коннекта нет, или какие-то ошибки ?
    Можно ваершарком глянуть, что происходит.
    Цитата Ссылка
  • O @ offsec:
    X-Shar сказал(а):
    @offsec, а почему не получилось, коннекта нет, или какие-то ошибки ? Можно ваершарком глянуть, что происходит.
    Цитата Ссылка
  • O @ offsec:
    Судя по тому как я понял: На начальных этапах(эксплуатации) мне нужно другой тулзой провести начальный доступ(с помощью metasploit), потом, если нужно, я провожу tcp бекон с выключенным stag'ингом. Т.е что все работало то ли надо передавать payload через метерпретер/etc.. то ли надо забить и просто с включенным staged пейлоадом(хотя здесь проблема: Из за этого оно садится АВ как не в себе). Прикол. Ну в принципе, Коба она же как пост-экслуатейшен тул)
    Цитата Ссылка
  • O @ offsec:
    Кароче на метасплоите сидеть буду, и в случае чего на кобальт передавать, хотя чувствую мне PowerShell empire'a хватит.
    Цитата Ссылка
  • O @ offsec:
    Мало слишком знаю, мне судя по всему надо вытаскивать файлы из cobalt-strike.jar, и с идой ассемблировать их) Дел в кобе реально много можно провернуть
    Цитата Ссылка
  • Q @ q8yas:
    hello every one here
    Цитата Ссылка

    ВАЖНО [КНИГА] Разработка драйверов для Windows

    • 512
    • 0
    1697104372490.png


    Всем привет, как-то я переводил эту книгу:Перевод книги Windows Kernel Programming

    Но есть профессиональный перевод, которым хочу поделиться.)

    В этой книге обсуждается множество вопросов, так как тема драйверов режима ядра чрезвычайно обширна. Тем не менее книгу следует рассматривать как вводный учебник в мир драйверов устройств режима ядра.

    Некоторые из тем, которые в книге не рассматривались:
    • Драйверы физических устройств.
    • Сетевые драйверы и фильтры.
    • WFP (Windows Filtering Platform).
    • Более подробная информация о мини-фильтрах файловой системы.
    • Другие общие средства разработки: таблицы хранения данных, AVL-деревья,битовые карты.
    • Типы драйверов для конкретных технологий: HID (Human Interface Device), экран, звуковая карта, Bluetooth, хранение данных…
    ...

    Информация Фантастические руткиты: И где их найти (часть 1)

    • 246
    • 9
    Dragon-hero-trb.jpg


    Введение

    В этой серии блогов мы рассмотрим тему руткитов - как они создаются, а также основы анализа драйверов ядра - в частности, на платформе Windows.

    В этой первой части мы рассмотрим примеры реализации базовой функциональности руткитов, основы разработки драйверов ядра, а также основы Windows Internals, необходимые для понимания внутренней работы руткитов.

    В следующей части мы остановимся на некоторых "наглядных" примерах руткитов и их анализе, на том, каково их назначение и как работает их функциональность.

    Что такое руткит? Руткит - это тип вредоносного ПО, которое ускользает от обнаружения путем вмешательства в работу ОС и прячется глубоко внутри нее, как правило, в пространстве ядра. Термин "rootkit" заимствован из терминологии Unix, где "root" - это самый привилегированный пользователь в системе.

    Такие примеры, как...

    Перевод книги Windows Kernel Programming

    • 1 801
    • 0
    Всем привет, закончил "Обзорный перевод книги" Windows Kernel Programming.

    Само качество перевода конечно не самое хорошее, это не уровень редакции, да и перевод делал больше для себя, а последние две главы практически не вычитывал, т.к. хотел по быстрее закончить перевод, по причине, что понял, что даже такой превод требует больших как энергозатрат, так и времени.

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

    Также к сожалению данная книга направлена на совсем новичков в теме, и даёт только набор каких-то базовых знаний и в ней не рассмотрено многие моменты, в частности, что интересно было-бы мне:

    • Аппаратные драйверы устройств.
    • Сетевые драйверы и фильтры.

    Тут я понял, что часто проще даже...

    Windows Kernel Programming:Глава 11.Обсуждение различных вопросов по разработке драйверов

    • 439
    • 0
    В этой последней главе книги мы рассмотрим различные темы, которые не соответствовали предыдущем главам.

    В этой главе:

    • Подпись драйвера.
    • Средство проверки и отладки драйверов.
    • Использование нативных API.
    • Драйверы фильтров.
    • Монитор устройства.
    • Подключение драйвера.
    • Библиотеки ядра.

    Во вложении pdf для чтения.

    Windows Kernel Programming:Глава 10: Введение в файловую систему и мини-фильтры.

    • 587
    • 0
    Файловые системы предоставвляют операции ввода-вывода для доступа к файлам. Windows поддерживает несколько файловых систем, прежде всего это NTFS.

    Фильтрация файловой системы - это механизм, с помощью которого драйверы могут перехватывать вызовы, адресованные файловой системе. Это полезно для многих типов программного обеспечения, таких как антивирусы, резервное копирование, шифрование и многое другое.

    Windows долгое время поддерживала модель фильтрации, известную как фильтры файловой системы, которая сейчас называется устаревшими фильтрами файловой системы.

    Была разработана новая модель, называемая мини-фильтрами файловой системы для замены устаревшего механизма фильтрации. Мини-фильтры легче писать во многих отношениях, и они предпочтительный способ разработки драйверов фильтрации файловой системы.

    В этой главе:

    Введение.
    Загрузка и выгрузка драйвера.
    Инициализация драйвера.
    Установка драйвера.
    Обработка операций...

    Windows Kernel Programming:Глава 9. Уведомления объектов и реестра

    • 1 779
    • 3
    Ядро предоставляет больше способов перехвата определенных операций/событий. Сначала мы рассмотрим объект уведомления, где может быть перехвачено и получение дескрипторов некоторых типов объектов. Далее мы рассмотрим перехват операций реестра.

    В этой главе:

    - Уведомления об объектах.

    - Драйвер защиты процессов .

    - Уведомления реестра.

    - Внедрение в уведомление реестра.

    - Упражнения.

    Уведомления об объектах

    Ядро предоставляет механизм для уведомления заинтересованным драйверам при попытке открыть или скопировать дескриптор определенных типов объектов.

    Официально поддерживаемые типы объектов: процесс, поток.

    Для регистрации уведомления существует функция апи ObRegisterCallbacks, прототип которого выглядит так:
    C:
    NTSTATUS ObRegisterCallbacks (
            _In_ POB_CALLBACK_REGISTRATION CallbackRegistration,
            _Outptr_ PVOID *RegistrationHandle);

    Перед регистрацией должна быть инициализирована структура OB_CALLBACK_REGISTRATION, которая...

    Windows Kernel Programming:Глава 8:Процессы и потоки, уведомления

    • 1 792
    • 2
    Один из мощных механизмов, доступных для драйверов ядра - это возможность получать уведомления, когда происходят важные события. В этой главе мы рассмотрим некоторые из этих событий, а именно создание процесса.

    А также создание и разрушение потоков и загрузка образов.

    В этой главе:
    • Уведомления о процессах.
    • Регистрация уведомлений о процессах.
    • Предоставление данных в пользовательском режиме.
    • Уведомления о потоках.
    • Уведомления о загрузке образов.
    • Упражнения.

    Уведомления о процессах

    Каждый раз, когда процесс создается или уничтожается, заинтересованные драйверы могут быть уведомлены ядром об этом факте. Это позволяет драйверам отслеживать процессы, возможно, связывая некоторые данные с этими процессами.

    Как минимум, это позволяет драйверам отслеживать создание/уничтожение процесса в
    в реальном времени. Под «в реальном времени» я подразумеваю, что уведомления отправляются «в оперативном режиме».

    Как часть создания процесса драйвер не может пропустить какие-либо...

    Windows Kernel Programming:Глава 7:Пакет запроса ввода/вывода

    • 1 810
    • 3
    После того, как типичный драйвер завершает свою инициализацию в DriverEntry, его основная задача — обрабатывать запросы. Эти запросы упакованы в виде
    полудокументированной структуры пакета запроса ввода-вывода (IRP).

    В этой главе мы более подробно рассмотрим пакеты IRP и то, как драйвер обрабатывает стандартные типы пакетов IRP.

    В этой главе:

    • Введение в IRP.
    • Узлы устройств.
    • IRP и расположение стека ввода-вывода.
    • Процедуры отправки.
    • Доступ к пользовательским буферам.
    • Собираем все вместе: Нулевой драйвер.

    Введение в IRP

    IRP - это структура, которая выделяется из невыгружаемого пула, как правило, одним из «менеджеров» (диспетчер ввода-вывода, диспетчер Plug & Play, диспетчер питания), но также может быть выделена драйвером, возможно, для передачи запроса другому
    драйверу.

    Как-бы IRP не выделялся, сервис который выделил эту структуру отвечает за его освобождение.

    Когда драйвер получает IRP, он получает указатель на стек ввода-вывода в самой структуре IRP...

    Windows Kernel Programming:Глава 6.Механизмы ядра

    • 2 038
    • 6
    В этой главе обсуждаются различные механизмы, предоставляемые ядром Windows. Некоторые из них полезны для написания драйверов. Другие - это механизмы, которые разработчик драйвера должен понимать, так – как это помогает делать отладку и дает общие понимание устройства системы.

    В этой главе:

    • Уровень запроса прерывания.
    • Отложенные вызовы процедур.
    • Асинхронные вызовы процедур.
    • Структурированная обработка исключений.
    • Системный сбой и отладка.
    • Синхронизация потоков.
    • Высокая IRQL-синхронизация.
    • Рабочие предметы.

    Уровень запроса прерывания

    В главе 1 мы обсуждали потоки и приоритеты потоков. Эти приоритеты приняты во внимание когда требуется выполнить больше потоков, чем имеется доступных процессоров.

    В то же время, аппаратное обеспечение устройства должны уведомлять систему о том, что что-то требует внимания. Простой пример Операция ввода/вывода, выполняемая дисководом.

    После завершения операции дисковод уведомляет о завершении, запрашивая прерывание...

    Windows Kernel Programming:Глава 5.Изучение отладчиков

    • 4 213
    • 19
    Как и в любом программном обеспечении, драйверы ядра обычно имеют ошибки.
    Отладка драйверов, в отличие от пользовательского режима, более сложный процесс.
    Отладка драйвера по сути отладка всей системы, не просто конкретного процесса или процессов. Это требует другого мышления.
    В этой главе будет обсуждаться отладка ядра с использованием отладчика WinDbg.

    В этой главе:

    • Инструменты отладки для Windows.
    • Введение в WinDbg.
    • Отладка ядра.
    • Полная отладка ядра.
    • Мануал по отладке драйверов ядра.

    1) Инструменты отладки для Windows

    Пакет средств отладки для Windows содержит набор отладчиков, инструментов и документации, сосредоточим внимание на отладчиках в пакете.
    Этот пакет может быть установлен как часть Windows SDK или WDK, но никакой реальной «установки» нет.
    Установка просто копирует файлы, но не трогает реестр, то есть пакет зависит только от собственных модулей и библиотеки DLL Windows.
    Это позволяет легко копировать весь каталог в любой другой каталог...

    Windows Kernel Programming:Глава 4. Драйвер и взаимодействие с ним из пользовательского режима

    • 3 159
    • 9
    В этой главе мы будем использовать многие концепции, которые мы изучили в предыдущих главах, и создадим простой драйвер.

    Также в этой главе создадим клиент, для взаимодействия с нашим драйвером.
    Мы установим драйвер и выполним в режиме ядра некоторую операцию, недоступную пользовательский режиме.

    В этой главе:

    Введение.
    Инициализация драйвера.
    Код клиента.
    Создание и закрытие процедур отправки.
    Программа отправки DeviceIoControl
    Установка и тестирование.

    1)Введение

    Проблема, которую мы решим с помощью простого драйвера ядра, заключается в негибкости установки приоритетов потоков используя Windows API.
    В пользовательском режиме приоритет потока определяется комбинацией его класса приоритета процесса со смещением для каждого потока, которое имеет ограниченное количество уровней.

    Изменение класса приоритета процесса может быть достигнуто с помощью функции SetPriorityClass, которая принимает дескриптор процесса и один из шести поддерживаемых классов приоритетов...

    Windows Kernel Programming:Глава 3.Основы программирования ядра windows

    • 2 168
    • 1
    Предыдущие версии глав:
    В этой главе мы углубимся в API, структуры и определения ядра.
    Мы также рассмотрим некоторые механизмы, которые вызывают код в драйвере.
    Наконец, мы объединим все эти знания, чтобы создать наш первый функциональный драйвер.

    В этой главе:

    Общие рекомендации по программированию ядра.
    Отладка и сборки релизов.
    API ядра.
    Функции и коды ошибок.
    Строки.
    Динамическое распределение памяти.
    Списки.
    Объект драйвера.
    Объекты устройства.

    Итак начнем:

    1)Общие рекомендации по программированию ядра

    Для разработки драйверов ядра требуется Windows Driver Kit (WDK), где находятся соответствующие заголовки и необходимые библиотеки.

    API ядра состоит из функций...

    Windows Kernel Programming:Глава 2.Начало работы с инструментами разработчика ядра

    • 2 375
    • 6
    Это вторая часть, с первой частью можно ознакомиться здесь:Windows Kernel Programming:Глава 1.Основные моменты и архитектура ядра

    В этой главе рассматриваются основы, которые необходимы для разработки драйверов.
    Вы установите необходимые инструменты и напишете первый драйвер, который можно загружать и выгружать.

    В этой главе:

    • Установка инструментов.
    • Создание проекта драйвера.
    • Описание процедур DriverEntry и Unload.
    • Разработка драйвера.
    • Простая трассировка.

    1)Установка инструментов

    В старые времена (до 2012 года) процесс разработки и сборки драйверов включал использование особого инструмента для сборки из комплекта драйверов устройств (DDK).
    Нужно-было качать специальный пакет компиляторов, далее в командной строке собирать драйвер, не было никакой интеграции в Visual Studio.
    Были некоторые обходные пути, но ни один из них не был ни...

    Windows Kernel Programming:Глава 1.Основные моменты и архитектура ядра

    • 2 467
    • 1
    будут размещаться мой "обзорный пересказ/перевод" книги Windows Kernel Programming (leanpub.com/windowskernelprogramming), от Павла Иосивича.

    Оригинал книги можно купить по ссылке выше.

    Далее что здесь будет выкладываться и зачем:

    Хочу отметит, что содержимое может существенно отличаться от оригинала, т.к. это не перевод, а больше пересказ, того-что я понял прочитав книгу, поэтому рекомендую всё-же купить книгу и читать в оригинале, к тому-же этим вы поддержите автора, который как мне кажется написал неплохую книгу.

    Итак зачем-же я выкладываю перевод ?

    Вообще давно интересно системное программирование, причем не только для Windows, ну и Линукс, также интересно изучать архитектуры кастомных ОС.

    Если про Линукс ещё есть более-менее свежая информацию по программированию модулей ядра и не только, то для винды такой информации нет в рунете.

    Тем не менее, просто читать скучно, а...

    Посетителей за сегодня

    Пользователи онлайн

    Верх Низ